<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:pingback="http://madskills.com/public/xml/rss/module/pingback/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:dc="http://purl.org/dc/elements/1.1/" version="2.0">
  <channel>
    <title>JohnArmitage.net - .NET</title>
    <link>http://www.johnarmitage.net/word/</link>
    <description />
    <language>en-us</language>
    <copyright>John Armitage</copyright>
    <lastBuildDate>Thu, 07 Jun 2007 02:37:59 GMT</lastBuildDate>
    <generator>newtelligence dasBlog 1.9.6264.0</generator>
    <managingEditor>blog@johnarmitage.net</managingEditor>
    <webMaster>blog@johnarmitage.net</webMaster>
    <item>
      <trackback:ping>http://www.johnarmitage.net/word/Trackback.aspx?guid=985ddc75-5504-4838-9a4a-a1cab356fb95</trackback:ping>
      <pingback:server>http://www.johnarmitage.net/word/pingback.aspx</pingback:server>
      <pingback:target>http://www.johnarmitage.net/word/PermaLink,guid,985ddc75-5504-4838-9a4a-a1cab356fb95.aspx</pingback:target>
      <dc:creator>John</dc:creator>
      <wfw:comment>http://www.johnarmitage.net/word/CommentView,guid,985ddc75-5504-4838-9a4a-a1cab356fb95.aspx</wfw:comment>
      <wfw:commentRss>http://www.johnarmitage.net/word/SyndicationService.asmx/GetEntryCommentsRss?guid=985ddc75-5504-4838-9a4a-a1cab356fb95</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Once a month whether I have something to say or not!
</p>
        <p>
Oh damn.  I'm breaking one of Scott Hanselman's rules that he lists out in <a href="http://www.hanselman.com/blog/BlogInteresting32WaysToKeepYourBlogFromSucking.aspx">Blog
Interesting - 32 Ways to Keep Your Blog from Sucking</a>.  I may have passed
suck a few posts ago already.  Oh well.
</p>
        <p>
I'm finally settled in Indiana.  Well as settled as you can be without owning
a house.  That's what is taking up all of my time lately.  Just to get a
bunch of stuff off my chest, here's a dump of links that I've either consumed or am
waiting to fully consume sometime shortly:
</p>
        <p>
          <a href="http://budtv.boss.streamos.com/download/budtv/ddb/media/swearjar/swear_jar_300k.wmv">Swear
Jar</a>. (wmv)  Awesome Bud Lite commercial.
</p>
        <p>
So you want to be a <a href="http://www.imdb.com/title/tt0118842/quotes">tracer</a>?! 
Here's your chance.  <a href="http://www.flickr.com/groups/reinkingthor/">Re-inking
Thor</a>.
</p>
        <p>
I haven't had a chance to play with it yet, but I really want to spend some time with
the latest <a href="http://msdn2.microsoft.com/en-us/robotics/bb426905.aspx">Microsoft
Robotics Studio</a>.  It looks like they have some Sumo Robot simulator happening. 
It looks like it's kind of a big brother to the <a href="http://channel9.msdn.com/ShowPost.aspx?PostID=16446">SumoBots</a>.
</p>
        <p>
I really wish that I could be at TechEd this year.  But between the move and
everything else, that just didn't happen.  I can still keep up with some of the
goings on thanks to <a href="http://www.virtualteched.com/Pages/default.aspx">Virtual
TechEd</a>.  I thought it was really cool that you could watch the keynote online. 
Be sure to check out the video covering Embedded programming.  NOTE: You will
need <a href="http://www.microsoft.com/silverlight/default01.aspx">Silverlight</a> installed
on your system to watch any of those videos.
</p>
        <p>
If Virtual TechEd doesn't give you enough info, my buddy <a href="http://exceptionhandler.blogspot.com/">James
is blogging from TechEd</a> as well.
</p>
        <img width="0" height="0" src="http://www.johnarmitage.net/word/aggbug.ashx?id=985ddc75-5504-4838-9a4a-a1cab356fb95" />
      </body>
      <title>The Monthly Post</title>
      <guid isPermaLink="false">http://www.johnarmitage.net/word/PermaLink,guid,985ddc75-5504-4838-9a4a-a1cab356fb95.aspx</guid>
      <link>http://www.johnarmitage.net/word/PermaLink,guid,985ddc75-5504-4838-9a4a-a1cab356fb95.aspx</link>
      <pubDate>Thu, 07 Jun 2007 02:37:59 GMT</pubDate>
      <description>&lt;p&gt;
Once a month whether I have something to say or not!
&lt;/p&gt;
&lt;p&gt;
Oh damn.&amp;nbsp; I'm breaking one of Scott Hanselman's rules that he lists out in &lt;a href="http://www.hanselman.com/blog/BlogInteresting32WaysToKeepYourBlogFromSucking.aspx"&gt;Blog
Interesting - 32 Ways to Keep Your Blog from Sucking&lt;/a&gt;.&amp;nbsp; I may have passed
suck a few posts ago already.&amp;nbsp; Oh well.
&lt;/p&gt;
&lt;p&gt;
I'm finally settled in Indiana.&amp;nbsp; Well as settled as you can be without owning
a house.&amp;nbsp; That's what is taking up all of my time lately.&amp;nbsp; Just to get a
bunch of stuff off my chest, here's a dump of links that I've either consumed or am
waiting to fully consume sometime shortly:
&lt;/p&gt;
&lt;p&gt;
&lt;a href="http://budtv.boss.streamos.com/download/budtv/ddb/media/swearjar/swear_jar_300k.wmv"&gt;Swear
Jar&lt;/a&gt;. (wmv)&amp;nbsp; Awesome Bud Lite commercial.
&lt;/p&gt;
&lt;p&gt;
So you want to be a &lt;a href="http://www.imdb.com/title/tt0118842/quotes"&gt;tracer&lt;/a&gt;?!&amp;nbsp;
Here's your chance.&amp;nbsp; &lt;a href="http://www.flickr.com/groups/reinkingthor/"&gt;Re-inking
Thor&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
I haven't had a chance to play with it yet, but I really want to spend some time with
the latest &lt;a href="http://msdn2.microsoft.com/en-us/robotics/bb426905.aspx"&gt;Microsoft
Robotics Studio&lt;/a&gt;.&amp;nbsp; It looks like they have some Sumo Robot simulator happening.&amp;nbsp;
It looks like it's kind of a big brother to the &lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=16446"&gt;SumoBots&lt;/a&gt;.
&lt;/p&gt;
&lt;p&gt;
I really wish that I could be at TechEd this year.&amp;nbsp; But between the move and
everything else, that just didn't happen.&amp;nbsp; I can still keep up with some of the
goings on thanks to &lt;a href="http://www.virtualteched.com/Pages/default.aspx"&gt;Virtual
TechEd&lt;/a&gt;.&amp;nbsp; I thought it was really cool that you could watch the keynote online.&amp;nbsp;
Be sure to check out the video covering Embedded programming.&amp;nbsp; NOTE: You will
need &lt;a href="http://www.microsoft.com/silverlight/default01.aspx"&gt;Silverlight&lt;/a&gt; installed
on your system to watch any of those videos.
&lt;/p&gt;
&lt;p&gt;
If Virtual TechEd doesn't give you enough info, my buddy &lt;a href="http://exceptionhandler.blogspot.com/"&gt;James
is blogging from TechEd&lt;/a&gt; as well.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.johnarmitage.net/word/aggbug.ashx?id=985ddc75-5504-4838-9a4a-a1cab356fb95" /&gt;</description>
      <comments>http://www.johnarmitage.net/word/CommentView,guid,985ddc75-5504-4838-9a4a-a1cab356fb95.aspx</comments>
      <category>.NET;personal;robotics;TechEd</category>
    </item>
    <item>
      <trackback:ping>http://www.johnarmitage.net/word/Trackback.aspx?guid=bed13a68-5989-44b9-ab68-3f81374ab369</trackback:ping>
      <pingback:server>http://www.johnarmitage.net/word/pingback.aspx</pingback:server>
      <pingback:target>http://www.johnarmitage.net/word/PermaLink,guid,bed13a68-5989-44b9-ab68-3f81374ab369.aspx</pingback:target>
      <dc:creator>John</dc:creator>
      <wfw:comment>http://www.johnarmitage.net/word/CommentView,guid,bed13a68-5989-44b9-ab68-3f81374ab369.aspx</wfw:comment>
      <wfw:commentRss>http://www.johnarmitage.net/word/SyndicationService.asmx/GetEntryCommentsRss?guid=bed13a68-5989-44b9-ab68-3f81374ab369</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
A week late, but Microsoft has finally come out with the first contest in <a href="http://www.dreambuildplay.com/main/HowToPlay.aspx">Dream
Build Play</a>.  The Challenge is to create a game based on the Spacewar Starter
Kit.  Use the codebase, content or both.  They also mention that you can
use the <a href="http://www.garagegames.com/products/torque/x/">Torque X tools</a>. 
Very nice....  I already have my ideas, do you?
</p>
        <p>
Games must be submitted between February 21st - 28th.
</p>
        <p>
Go read at <a href="http://www.dreambuildplay.com/main/HowToPlay.aspx">Dream Build
Play</a> to find out more.
</p>
        <img width="0" height="0" src="http://www.johnarmitage.net/word/aggbug.ashx?id=bed13a68-5989-44b9-ab68-3f81374ab369" />
      </body>
      <title>Dream Build Play</title>
      <guid isPermaLink="false">http://www.johnarmitage.net/word/PermaLink,guid,bed13a68-5989-44b9-ab68-3f81374ab369.aspx</guid>
      <link>http://www.johnarmitage.net/word/PermaLink,guid,bed13a68-5989-44b9-ab68-3f81374ab369.aspx</link>
      <pubDate>Thu, 15 Feb 2007 15:46:34 GMT</pubDate>
      <description>&lt;p&gt;
A week late, but Microsoft has finally come out with the first contest in &lt;a href="http://www.dreambuildplay.com/main/HowToPlay.aspx"&gt;Dream
Build Play&lt;/a&gt;.&amp;nbsp; The Challenge is to create a game based on the Spacewar Starter
Kit.&amp;nbsp; Use the codebase, content or both.&amp;nbsp; They also mention that you can
use the&amp;nbsp;&lt;a href="http://www.garagegames.com/products/torque/x/"&gt;Torque X tools&lt;/a&gt;.&amp;nbsp;
Very nice....&amp;nbsp; I already have my ideas, do you?
&lt;/p&gt;
&lt;p&gt;
Games must be submitted between February 21st - 28th.
&lt;/p&gt;
&lt;p&gt;
Go read at &lt;a href="http://www.dreambuildplay.com/main/HowToPlay.aspx"&gt;Dream Build
Play&lt;/a&gt; to find out more.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.johnarmitage.net/word/aggbug.ashx?id=bed13a68-5989-44b9-ab68-3f81374ab369" /&gt;</description>
      <comments>http://www.johnarmitage.net/word/CommentView,guid,bed13a68-5989-44b9-ab68-3f81374ab369.aspx</comments>
      <category>.NET;XNA;DreamBuildPlay</category>
    </item>
    <item>
      <trackback:ping>http://www.johnarmitage.net/word/Trackback.aspx?guid=b30f67ce-004a-4167-bb3d-8633fcb283de</trackback:ping>
      <pingback:server>http://www.johnarmitage.net/word/pingback.aspx</pingback:server>
      <pingback:target>http://www.johnarmitage.net/word/PermaLink,guid,b30f67ce-004a-4167-bb3d-8633fcb283de.aspx</pingback:target>
      <dc:creator>John</dc:creator>
      <wfw:comment>http://www.johnarmitage.net/word/CommentView,guid,b30f67ce-004a-4167-bb3d-8633fcb283de.aspx</wfw:comment>
      <wfw:commentRss>http://www.johnarmitage.net/word/SyndicationService.asmx/GetEntryCommentsRss?guid=b30f67ce-004a-4167-bb3d-8633fcb283de</wfw:commentRss>
      <body xmlns="http://www.w3.org/1999/xhtml">
        <p>
Microsoft released the <a href="http://msdn2.microsoft.com/en-us/embedded/bb267253.aspx">.NET
Micro Framework 2.0</a> the other day.  This is pretty cool technology with a
lot of possibilities.  I find it hard to play around with it too much though
because I don't really have any hardware that will let me deploy applications to it. 
It would be neat if there was a way to write stuff that could run on my watch and
load it up on there.
</p>
        <p>
One really cool application that I've seen (in <a href="http://msdn.microsoft.com/embedded/media/tutorials/netmf.wmv">this
video</a>) is somebody setting the temp in their house via their cell phone while
on their way home.  It would be sweet to set up that kind of automation and remote
control, as far as lights and thermostat and other things in your house.  <a href="http://www.leviton.com/OA_HTML/ibeCZzpHome.jsp?minisite=10026&amp;respid=22372">Leviton</a> has
a lot of home automation technology.  It looks like some of it is .NET Micro
related too.  Haven't followed up any more as of yet to see how pricey or hackable
the products are though.
</p>
        <img width="0" height="0" src="http://www.johnarmitage.net/word/aggbug.ashx?id=b30f67ce-004a-4167-bb3d-8633fcb283de" />
      </body>
      <title>.NET Micro Framework</title>
      <guid isPermaLink="false">http://www.johnarmitage.net/word/PermaLink,guid,b30f67ce-004a-4167-bb3d-8633fcb283de.aspx</guid>
      <link>http://www.johnarmitage.net/word/PermaLink,guid,b30f67ce-004a-4167-bb3d-8633fcb283de.aspx</link>
      <pubDate>Thu, 15 Feb 2007 14:15:24 GMT</pubDate>
      <description>&lt;p&gt;
Microsoft released the &lt;a href="http://msdn2.microsoft.com/en-us/embedded/bb267253.aspx"&gt;.NET
Micro Framework 2.0&lt;/a&gt; the other day.&amp;nbsp; This is pretty cool technology with a
lot of possibilities.&amp;nbsp; I find it hard to play around with it too much though
because I don't really have any hardware that will let me deploy applications to it.&amp;nbsp;
It would be neat if there was a way to write stuff that could run on my watch and
load it up on there.
&lt;/p&gt;
&lt;p&gt;
One really cool application that I've seen (in &lt;a href="http://msdn.microsoft.com/embedded/media/tutorials/netmf.wmv"&gt;this
video&lt;/a&gt;) is somebody setting the temp in their house via their cell phone while
on their way home.&amp;nbsp; It would be sweet to set up that kind of automation and remote
control, as far as lights and thermostat and other things in your house.&amp;nbsp; &lt;a href="http://www.leviton.com/OA_HTML/ibeCZzpHome.jsp?minisite=10026&amp;amp;respid=22372"&gt;Leviton&lt;/a&gt; has
a lot of home automation technology.&amp;nbsp; It looks like some of it is .NET Micro
related too.&amp;nbsp; Haven't followed up any more as of yet to see how pricey or hackable
the products are though.
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.johnarmitage.net/word/aggbug.ashx?id=b30f67ce-004a-4167-bb3d-8633fcb283de" /&gt;</description>
      <comments>http://www.johnarmitage.net/word/CommentView,guid,b30f67ce-004a-4167-bb3d-8633fcb283de.aspx</comments>
      <category>.NET;SPOT</category>
    </item>
    <item>
      <trackback:ping>http://www.johnarmitage.net/word/Trackback.aspx?guid=33f60296-0f27-40cb-b154-e8cf134db412</trackback:ping>
      <pingback:server>http://www.johnarmitage.net/word/pingback.aspx</pingback:server>
      <pingback:target>http://www.johnarmitage.net/word/PermaLink,guid,33f60296-0f27-40cb-b154-e8cf134db412.aspx</pingback:target>
      <dc:creator>John</dc:creator>
      <wfw:comment>http://www.johnarmitage.net/word/CommentView,guid,33f60296-0f27-40cb-b154-e8cf134db412.aspx</wfw:comment>
      <wfw:commentRss>http://www.johnarmitage.net/word/SyndicationService.asmx/GetEntryCommentsRss?guid=33f60296-0f27-40cb-b154-e8cf134db412</wfw:commentRss>
      <title>SPOT</title>
      <guid isPermaLink="false">http://www.johnarmitage.net/word/PermaLink,guid,33f60296-0f27-40cb-b154-e8cf134db412.aspx</guid>
      <link>http://www.johnarmitage.net/word/PermaLink,guid,33f60296-0f27-40cb-b154-e8cf134db412.aspx</link>
      <pubDate>Tue, 07 Nov 2006 14:24:49 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Every year around this time I write
a post talking about how much I like my watch.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Guess
what?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I still like it.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I’m
usually reminded of it this time of year because I have to decide if I want to pay
the $50 to keep using the &lt;a href="http://direct.msn.com/"&gt;MSN Direct&lt;/a&gt; service.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
chose to renew it this year.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I’ll still
read the news on it every now and then when I ride the bus to work.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I
still use it to check football scores when my wife has drug me out shopping on a Saturday
afternoon.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I don’t really use it too
much for the IM features anymore.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;But
the one area where it is still indispensable is reminding me when I have a meeting.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;That
one feature (synching up with Outlook) is worth its weight in gold.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;One of the things that first intrigued
me about the technology was the hopes that I would be able to write code for it.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Unfortunately
at the time when I got the watch you had to buy a &lt;a href="http://www.windowsfordevices.com/news/NS4666205829.html"&gt;development
kit that included a chip&lt;/a&gt; to test your code on.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;In
the end I wasn’t interested enough to buy the development kit.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;But now you can develop for the
SPOT platform in Visual Studio using the &lt;a href="http://www.aboutnetmf.com"&gt;.NET
Micro Framework and SPOT&lt;/a&gt; emulator. It seems pretty cool when you first use it.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;That
is until you realize that there doesn’t seem to be a way to get that to an actual
device.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Right now I can’t write some
code that does something, and push that down to a device like a watch.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Plus,
even if you could, there isn’t a whole lot of useful stuff that can be done without
being able to access the radio spectrum and get some real-time communication.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;One
application that I can think of off the top of my head that doesn’t need the real
time communication would be to load and have the ability to read certain bus schedules
so that I don’t have to look online or have a paper copy handy.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Actually, I guess that bus thing
would be more “useful” than “cool”.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;You
actually do have the ability to do something cool, and that something is called &lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=16446"&gt;Sumobot&lt;/a&gt;.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The
SDK comes with a Sumobot emulator and startup code.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;You
can even buy a &lt;a href="http://scientificsonline.com/product.asp?pn=3080284&amp;amp;bhcd2=1162908510"&gt;Sumobot
kit&lt;/a&gt; that you can build and push your code out to!&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Another
thing you can also do with the Sumobot is enter a &lt;a href="http://forums.we-dig.org/ShowPost.aspx?PostID=404"&gt;Sumobot
Contest&lt;/a&gt;.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I’ve already submitted mine.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Anybody
else up for some Sumobot?&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.johnarmitage.net/word/aggbug.ashx?id=33f60296-0f27-40cb-b154-e8cf134db412" /&gt;</description>
      <comments>http://www.johnarmitage.net/word/CommentView,guid,33f60296-0f27-40cb-b154-e8cf134db412.aspx</comments>
      <category>.NET;SPOT;Sumobot</category>
    </item>
    <item>
      <trackback:ping>http://www.johnarmitage.net/word/Trackback.aspx?guid=601ef89f-2d48-48cd-b992-9b08e10fbf14</trackback:ping>
      <pingback:server>http://www.johnarmitage.net/word/pingback.aspx</pingback:server>
      <pingback:target>http://www.johnarmitage.net/word/PermaLink,guid,601ef89f-2d48-48cd-b992-9b08e10fbf14.aspx</pingback:target>
      <dc:creator>John</dc:creator>
      <wfw:comment>http://www.johnarmitage.net/word/CommentView,guid,601ef89f-2d48-48cd-b992-9b08e10fbf14.aspx</wfw:comment>
      <wfw:commentRss>http://www.johnarmitage.net/word/SyndicationService.asmx/GetEntryCommentsRss?guid=601ef89f-2d48-48cd-b992-9b08e10fbf14</wfw:commentRss>
      <title>Multiple Interfaces</title>
      <guid isPermaLink="false">http://www.johnarmitage.net/word/PermaLink,guid,601ef89f-2d48-48cd-b992-9b08e10fbf14.aspx</guid>
      <link>http://www.johnarmitage.net/word/PermaLink,guid,601ef89f-2d48-48cd-b992-9b08e10fbf14.aspx</link>
      <pubDate>Tue, 24 Oct 2006 14:21:40 GMT</pubDate>
      <description>&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;The architects of the .NET framework
made a specific decision not to use multiple inheritance.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;There
are arguments on “they should have” and “they did the right thing”, and there are
some work-arounds where you can kind of get the feeling of multiple inheritance.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;But
I’m not going to specifically focus on that right now.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Today
I’m talking about interfaces, and a problem that I ran into converting some code from
.NET 1.1 to 2.0.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;When you start talking about the
need for multiple inheritance, the answer that inevitably comes up is interfaces.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;That’s
all well and good, but it still leaves you with having to implement all of those interfaces
in each class where they are used.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Not
quite as fancy as just straight inheritance.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The
ability to implement these multiple interfaces still leaves you with one of the problems
of multiple inheritance as well.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I’m
talking about method overloading.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Let’s say in your code you have
two interfaces, Ione and Itwo.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Let’s
also say that you have a bunch of classes that implement Ione and Itwo.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; COLOR: blue; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;interface&lt;/span&gt;&lt;font color=#000000&gt; Ione{}&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; COLOR: blue; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;interface&lt;/span&gt;&lt;font color=#000000&gt; Itwo{}&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; COLOR: blue; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;class&lt;/span&gt;&lt;font color=#000000&gt; UsesInterfaceOne
: Ione {}&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;
&lt;o:p&gt;
&lt;font color=#000000&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; COLOR: blue; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;class&lt;/span&gt;&lt;font color=#000000&gt; UsesInterfaceTwo
: Itwo {}&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;This allows you two write code like
this&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; COLOR: blue; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;class&lt;/span&gt;&lt;font color=#000000&gt; Runner&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt;{&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;span style="mso-tab-count: 1"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;static&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;&lt;font color=#000000&gt; Run(Ione
one)&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;span style="mso-tab-count: 2"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;return&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; BACKGROUND: green; COLOR: yellow; FONT-FAMILY: AnonymousRegular; mso-highlight: green"&gt;"Ran
ONE"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt;;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;span style="mso-tab-count: 1"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;public&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;static&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;string&lt;/span&gt;&lt;font color=#000000&gt; Run(Itwo
two)&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;{&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;span style="mso-tab-count: 2"&gt;&lt;font color=#000000&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;span style="COLOR: blue"&gt;return&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; BACKGROUND: green; COLOR: yellow; FONT-FAMILY: AnonymousRegular; mso-highlight: green"&gt;"Ran
TWO"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt;;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt;&lt;span style="mso-tab-count: 1"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;}&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt;}&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;But suppose someone comes along
and decides to introduce a class that looks something along the lines of this (can
you guess what’s coming next?)&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; COLOR: blue; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;public&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;class&lt;/span&gt;&lt;font color=#000000&gt; UsesBothInterfaces
: Ione, Itwo {}&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;Oh damn.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;What
happens when you run Runner.Run() ?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Well now…..that all depends.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;How
are you calling the method and what framework are you using?&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;If
you are just running the code directly like so|&lt;br&gt;
&lt;/font&gt;&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;
&lt;/p&gt;
&gt; 
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt; mso-layout-grid-align: none"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt;UsesBothInterfaces
both = &lt;/font&gt;&lt;span style="COLOR: blue"&gt;new&lt;/span&gt;&lt;font color=#000000&gt; UsesBothInterfaces();&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt;Runner.Run(both);&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Then that code won’t even compile.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;It
tells you that the call is ambiguous.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;But what if you think that you’re
being slick, and you have an XML file that drives your navigation, and you are calling
your methods via reflection and Type.InvokeMember().&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Say
your code looks something like this&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt;Type.GetType(&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; BACKGROUND: green; COLOR: yellow; FONT-FAMILY: AnonymousRegular; mso-highlight: green"&gt;"MultipleInterfaces.Runner"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt;).InvokeMember(&lt;/font&gt;&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; BACKGROUND: green; COLOR: yellow; FONT-FAMILY: AnonymousRegular; mso-highlight: green"&gt;"Run"&lt;/span&gt;&lt;span style="FONT-SIZE: 10pt; BACKGROUND: silver; FONT-FAMILY: AnonymousRegular; mso-highlight: silver"&gt;&lt;font color=#000000&gt;,
BindingFlags.Public | BindingFlags.Static | BindingFlags.FlattenHierarchy | BindingFlags.InvokeMethod, &lt;/font&gt;&lt;span style="COLOR: blue"&gt;null&lt;/span&gt;&lt;font color=#000000&gt;, &lt;/font&gt;&lt;span style="COLOR: blue"&gt;null&lt;/span&gt;&lt;font color=#000000&gt;, &lt;/font&gt;&lt;span style="COLOR: blue"&gt;new&lt;/span&gt;&lt;font color=#000000&gt; &lt;/font&gt;&lt;span style="COLOR: blue"&gt;object&lt;/span&gt;&lt;font color=#000000&gt;[]
{o})&lt;/font&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;Yeah.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;So
in the .NET framework 1.1, that runs fine.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Well,
sort of fine.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;What it seems to be doing
is calling the last method that is listed in your class.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Now
I haven’t analyzed it further than stepping through the code, and trying to flip the
methods around to see which one is being called.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;So
it may be doing something a bit more fancy than calling the last one.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;But
that seems to be what my tests are showing.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;NOW, take your code
and port everything over to .NET 2.0.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Either
convert it in the IDE or just go into IIS Manager and switch it over to 2.0. &lt;i style="mso-bidi-font-style: normal"&gt;Note:
depending on what version of IIS you are using, you’ll probably have to reset IIS
or move your app to a new app pool.&lt;/i&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Now
run that bit of reflection code and you should be seeing an exception.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Specifically
it is throwing a System.Reflection.AmbiguousMatchException.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;So they tightened up reflection
a little bit.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;I would say for the better.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Even
though it looks like there is now a possible breaking change during runtime in your
app.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;But if you are using reflection
to poke around and call methods, you should probably be writing your code to be able
to handle these kinds of exceptions and error out or continue on gracefully.&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;o:p&gt;
&lt;font face="Times New Roman" color=#000000 size=3&gt;&amp;nbsp;&lt;/font&gt;
&lt;/o:p&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font size=3&gt;&lt;font color=#000000&gt;&lt;font face="Times New Roman"&gt;If you want to the sample
code that I created when testing this, you can get it here:&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;a href="http://johnarmitage.net/CodeSamples/MultipleInheritance/MultipleInheritance.zip"&gt;MultipleInheritance.zip&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.johnarmitage.net/word/aggbug.ashx?id=601ef89f-2d48-48cd-b992-9b08e10fbf14" /&gt;</description>
      <comments>http://www.johnarmitage.net/word/CommentView,guid,601ef89f-2d48-48cd-b992-9b08e10fbf14.aspx</comments>
      <category>.NET</category>
    </item>
  </channel>
</rss>