<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: static reflection &#8211; INotifyPropertyChanged</title>
	<atom:link href="http://jonfuller.codingtomusic.com/2008/12/08/static-reflection-inotifypropertychanged/feed/" rel="self" type="application/rss+xml" />
	<link>http://jonfuller.codingtomusic.com/2008/12/08/static-reflection-inotifypropertychanged/</link>
	<description></description>
	<lastBuildDate>Thu, 25 Feb 2010 19:01:47 -0700</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Dmitri</title>
		<link>http://jonfuller.codingtomusic.com/2008/12/08/static-reflection-inotifypropertychanged/comment-page-1/#comment-355</link>
		<dc:creator>Dmitri</dc:creator>
		<pubDate>Sun, 03 Jan 2010 15:51:54 +0000</pubDate>
		<guid isPermaLink="false">http://jonfuller.codingtomusic.com/?p=56#comment-355</guid>
		<description>Err, what about the situation where you cannot really subclass from NotifyPropertyChanged because you&#039;re already inheriting from something else? This whole approach hinges on inheritance which prevents it being used anywhere. At this point, I&#039;d typically suggest a mixin, except that mixins cannot contain state (without a lot of pain), and you have an event whose value must be accessible.

I think, for the time being, it makes sense to just use PostSharp for the INotifyPropertyChanged problem.</description>
		<content:encoded><![CDATA[<p>Err, what about the situation where you cannot really subclass from NotifyPropertyChanged because you&#8217;re already inheriting from something else? This whole approach hinges on inheritance which prevents it being used anywhere. At this point, I&#8217;d typically suggest a mixin, except that mixins cannot contain state (without a lot of pain), and you have an event whose value must be accessible.</p>
<p>I think, for the time being, it makes sense to just use PostSharp for the INotifyPropertyChanged problem.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Igor Yalovoi</title>
		<link>http://jonfuller.codingtomusic.com/2008/12/08/static-reflection-inotifypropertychanged/comment-page-1/#comment-274</link>
		<dc:creator>Igor Yalovoi</dc:creator>
		<pubDate>Thu, 01 Oct 2009 15:34:55 +0000</pubDate>
		<guid isPermaLink="false">http://jonfuller.codingtomusic.com/?p=56#comment-274</guid>
		<description>Great work. Helped me very much.</description>
		<content:encoded><![CDATA[<p>Great work. Helped me very much.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Static Reflection: Say What? - Brownie Points</title>
		<link>http://jonfuller.codingtomusic.com/2008/12/08/static-reflection-inotifypropertychanged/comment-page-1/#comment-165</link>
		<dc:creator>Static Reflection: Say What? - Brownie Points</dc:creator>
		<pubDate>Mon, 23 Feb 2009 18:19:41 +0000</pubDate>
		<guid isPermaLink="false">http://jonfuller.codingtomusic.com/?p=56#comment-165</guid>
		<description>[...] do things that appear to be dynamic but in reality are checked at compile time. Like for instance, getting the name of a property for firing an INotifyPropertyChanged.PropertyChanged event. My colleague, Jon Fuller, showed me his code for Method Guards and my first comment was that this [...]</description>
		<content:encoded><![CDATA[<p>[...] do things that appear to be dynamic but in reality are checked at compile time. Like for instance, getting the name of a property for firing an INotifyPropertyChanged.PropertyChanged event. My colleague, Jon Fuller, showed me his code for Method Guards and my first comment was that this [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alexey Romanov</title>
		<link>http://jonfuller.codingtomusic.com/2008/12/08/static-reflection-inotifypropertychanged/comment-page-1/#comment-153</link>
		<dc:creator>Alexey Romanov</dc:creator>
		<pubDate>Sat, 27 Dec 2008 08:17:06 +0000</pubDate>
		<guid isPermaLink="false">http://jonfuller.codingtomusic.com/?p=56#comment-153</guid>
		<description>Sorry for the double comment</description>
		<content:encoded><![CDATA[<p>Sorry for the double comment</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alexey Romanov</title>
		<link>http://jonfuller.codingtomusic.com/2008/12/08/static-reflection-inotifypropertychanged/comment-page-1/#comment-152</link>
		<dc:creator>Alexey Romanov</dc:creator>
		<pubDate>Fri, 26 Dec 2008 14:04:46 +0000</pubDate>
		<guid isPermaLink="false">http://jonfuller.codingtomusic.com/?p=56#comment-152</guid>
		<description>It seems like you really want a decent macro system. In .Net that means, at the moment, either Nemerle or Boo.

I don&#039;t remember Boo syntax, but in Nemerle you can just write

[Accessor(flags = WantSetter)]
mutable _someField : int;

and it will be converted at compile time to

mutable _someField : int;
public SomeField : int {
  get { some_field }
  set { some_field = value }
}

Writing a macro which would insert FirePropertyChange calls as well is pretty easy.</description>
		<content:encoded><![CDATA[<p>It seems like you really want a decent macro system. In .Net that means, at the moment, either Nemerle or Boo.</p>
<p>I don&#8217;t remember Boo syntax, but in Nemerle you can just write</p>
<p>[Accessor(flags = WantSetter)]<br />
mutable _someField : int;</p>
<p>and it will be converted at compile time to</p>
<p>mutable _someField : int;<br />
public SomeField : int {<br />
  get { some_field }<br />
  set { some_field = value }<br />
}</p>
<p>Writing a macro which would insert FirePropertyChange calls as well is pretty easy.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Alexey Romanov</title>
		<link>http://jonfuller.codingtomusic.com/2008/12/08/static-reflection-inotifypropertychanged/comment-page-1/#comment-151</link>
		<dc:creator>Alexey Romanov</dc:creator>
		<pubDate>Fri, 26 Dec 2008 13:05:09 +0000</pubDate>
		<guid isPermaLink="false">http://jonfuller.codingtomusic.com/?p=56#comment-151</guid>
		<description>It seems like you want a decent (i.e. not C preprocessor) macro system. On .Net the best language for this is probably Nemerle or Boo. You can just write (in Nemerle, I don&#039;t remember Boo syntax)

        [NotifiableProperty]
        public string _firstName;

and it will be converted to 

        public string FirstName
        {
            get { return _firstName; }
            set
            {
                if (_firstName != value)
                {
                    _firstName = value;
                    FirePropertyChanged(&quot;FirstName&quot;);
                }
            }
        }

at compile time, no run time overhead! See here: http://nemerle.org/Macros</description>
		<content:encoded><![CDATA[<p>It seems like you want a decent (i.e. not C preprocessor) macro system. On .Net the best language for this is probably Nemerle or Boo. You can just write (in Nemerle, I don&#8217;t remember Boo syntax)</p>
<p>        [NotifiableProperty]<br />
        public string _firstName;</p>
<p>and it will be converted to </p>
<p>        public string FirstName<br />
        {<br />
            get { return _firstName; }<br />
            set<br />
            {<br />
                if (_firstName != value)<br />
                {<br />
                    _firstName = value;<br />
                    FirePropertyChanged(&#8221;FirstName&#8221;);<br />
                }<br />
            }<br />
        }</p>
<p>at compile time, no run time overhead! See here: <a href="http://nemerle.org/Macros" rel="nofollow">http://nemerle.org/Macros</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: private override &#187; Blog Archive &#187; static reflection - Method Guards</title>
		<link>http://jonfuller.codingtomusic.com/2008/12/08/static-reflection-inotifypropertychanged/comment-page-1/#comment-149</link>
		<dc:creator>private override &#187; Blog Archive &#187; static reflection - Method Guards</dc:creator>
		<pubDate>Thu, 11 Dec 2008 15:48:08 +0000</pubDate>
		<guid isPermaLink="false">http://jonfuller.codingtomusic.com/?p=56#comment-149</guid>
		<description>[...] private override       &#171; static reflection - INotifyPropertyChanged [...]</description>
		<content:encoded><![CDATA[<p>[...] private override       &laquo; static reflection &#8211; INotifyPropertyChanged [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: .Net Ramblings &#187; Blog Archive &#187; Cleaning up INotifyPropertyChanged</title>
		<link>http://jonfuller.codingtomusic.com/2008/12/08/static-reflection-inotifypropertychanged/comment-page-1/#comment-148</link>
		<dc:creator>.Net Ramblings &#187; Blog Archive &#187; Cleaning up INotifyPropertyChanged</dc:creator>
		<pubDate>Wed, 10 Dec 2008 20:06:05 +0000</pubDate>
		<guid isPermaLink="false">http://jonfuller.codingtomusic.com/?p=56#comment-148</guid>
		<description>[...] (_name != value) conditions that have to be in every setter. Therefore, I was really excited to see this post from my friend Jonathan Fuller and his much cleaner way of implementing [...]</description>
		<content:encoded><![CDATA[<p>[...] (_name != value) conditions that have to be in every setter. Therefore, I was really excited to see this post from my friend Jonathan Fuller and his much cleaner way of implementing [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Paul</title>
		<link>http://jonfuller.codingtomusic.com/2008/12/08/static-reflection-inotifypropertychanged/comment-page-1/#comment-147</link>
		<dc:creator>Paul</dc:creator>
		<pubDate>Wed, 10 Dec 2008 19:43:29 +0000</pubDate>
		<guid isPermaLink="false">http://jonfuller.codingtomusic.com/?p=56#comment-147</guid>
		<description>I was always annoyed by implementing INotifyPropertyChanged. I&#039;ll definitely being using this in the future</description>
		<content:encoded><![CDATA[<p>I was always annoyed by implementing INotifyPropertyChanged. I&#8217;ll definitely being using this in the future</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matt</title>
		<link>http://jonfuller.codingtomusic.com/2008/12/08/static-reflection-inotifypropertychanged/comment-page-1/#comment-145</link>
		<dc:creator>Matt</dc:creator>
		<pubDate>Mon, 08 Dec 2008 19:14:55 +0000</pubDate>
		<guid isPermaLink="false">http://jonfuller.codingtomusic.com/?p=56#comment-145</guid>
		<description>I like it!</description>
		<content:encoded><![CDATA[<p>I like it!</p>
]]></content:encoded>
	</item>
</channel>
</rss>
