<?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: Announcing: TinyIoC &#8211; An Easy to Use, Hassle Free, Inversion of Control Container</title>
	<atom:link href="http://www.grumpydev.com/2010/03/02/announcing-tinyioc-an-easy-to-use-hassle-free-inversion-of-control-container/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.grumpydev.com/2010/03/02/announcing-tinyioc-an-easy-to-use-hassle-free-inversion-of-control-container/</link>
	<description>The Technical Jibber Jabber of Steven Robbins</description>
	<lastBuildDate>Mon, 23 Aug 2010 13:25:21 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
	<item>
		<title>By: Steven Robbins</title>
		<link>http://www.grumpydev.com/2010/03/02/announcing-tinyioc-an-easy-to-use-hassle-free-inversion-of-control-container/comment-page-1/#comment-308</link>
		<dc:creator>Steven Robbins</dc:creator>
		<pubDate>Mon, 23 Aug 2010 13:25:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.grumpydev.com/?p=288#comment-308</guid>
		<description>There&#039;s a few overloads where you can specify specific assemblies to scan, rather than everything in the app domain which should do the same as the Windsor example you posted.

I have considered adding a predicate overload to dictate whether a type is registered or not, but I&#039;m not entirely sure if it&#039;s overkill or not.</description>
		<content:encoded><![CDATA[<p>There&#8217;s a few overloads where you can specify specific assemblies to scan, rather than everything in the app domain which should do the same as the Windsor example you posted.</p>
<p>I have considered adding a predicate overload to dictate whether a type is registered or not, but I&#8217;m not entirely sure if it&#8217;s overkill or not.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: iwayneo</title>
		<link>http://www.grumpydev.com/2010/03/02/announcing-tinyioc-an-easy-to-use-hassle-free-inversion-of-control-container/comment-page-1/#comment-307</link>
		<dc:creator>iwayneo</dc:creator>
		<pubDate>Mon, 23 Aug 2010 13:13:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.grumpydev.com/?p=288#comment-307</guid>
		<description>Hi

Loving this IoC - works perfect in MT - going to give it a whirl in monodroid too. One thing I can see being an advantage would be to filter the auto reg so that it doesn&#039;t try and register everything. Something like the Windsor API:

container.Register(
    AllTypes.Of()
        .FromAssembly(Assembly.GetExecutingAssembly())
);

Though that may be a bit much - some way of filtering would be good - unless the overhead for large projects is minimal?

w://</description>
		<content:encoded><![CDATA[<p>Hi</p>
<p>Loving this IoC &#8211; works perfect in MT &#8211; going to give it a whirl in monodroid too. One thing I can see being an advantage would be to filter the auto reg so that it doesn&#8217;t try and register everything. Something like the Windsor API:</p>
<p>container.Register(<br />
    AllTypes.Of()<br />
        .FromAssembly(Assembly.GetExecutingAssembly())<br />
);</p>
<p>Though that may be a bit much &#8211; some way of filtering would be good &#8211; unless the overhead for large projects is minimal?</p>
<p>w://</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: OCInject Release 2 at Humblecoder</title>
		<link>http://www.grumpydev.com/2010/03/02/announcing-tinyioc-an-easy-to-use-hassle-free-inversion-of-control-container/comment-page-1/#comment-230</link>
		<dc:creator>OCInject Release 2 at Humblecoder</dc:creator>
		<pubDate>Mon, 22 Mar 2010 10:03:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.grumpydev.com/?p=288#comment-230</guid>
		<description>[...] I omitted one important feature, lifestyle management.&#160; This coupled with the release of a feature full TinyIOC has made me re-evaluate my position on not adding too many features to OCInject.&#160; Release 2 of [...]</description>
		<content:encoded><![CDATA[<p>[...] I omitted one important feature, lifestyle management.&#160; This coupled with the release of a feature full TinyIOC has made me re-evaluate my position on not adding too many features to OCInject.&#160; Release 2 of [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Weekly Links #95 &#124; GrantPalin.com</title>
		<link>http://www.grumpydev.com/2010/03/02/announcing-tinyioc-an-easy-to-use-hassle-free-inversion-of-control-container/comment-page-1/#comment-206</link>
		<dc:creator>Weekly Links #95 &#124; GrantPalin.com</dc:creator>
		<pubDate>Mon, 08 Mar 2010 00:36:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.grumpydev.com/?p=288#comment-206</guid>
		<description>[...] Announcing: TinyIoC – An Easy to Use, Hassle Free, Inversion of Control Container Yet another IoC container for .NET. Sounds interesting though, will dig into it. [...]</description>
		<content:encoded><![CDATA[<p>[...] Announcing: TinyIoC – An Easy to Use, Hassle Free, Inversion of Control Container Yet another IoC container for .NET. Sounds interesting though, will dig into it. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: srobbins</title>
		<link>http://www.grumpydev.com/2010/03/02/announcing-tinyioc-an-easy-to-use-hassle-free-inversion-of-control-container/comment-page-1/#comment-204</link>
		<dc:creator>srobbins</dc:creator>
		<pubDate>Fri, 05 Mar 2010 14:42:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.grumpydev.com/?p=288#comment-204</guid>
		<description>I&#039;ve changed AutoRegister so you can now get it to throw a meaningful exception if there&#039;s duplicates. The exception message shows the interface/base class that has the clash, and also a comma separated list of all the potential implementations.

I could take that IEnumerable&lt;Type&gt; and pass it into a user specified delegate, but I&#039;m not sure whether that&#039;s taking AutoRegister too far or not - if there&#039;s definite logic you need in your registrations, or if you need named registrations etc., then you might be best either switching to just Register, or mixing AutoRegister with some specific Register commands afterwards?</description>
		<content:encoded><![CDATA[<p>I&#8217;ve changed AutoRegister so you can now get it to throw a meaningful exception if there&#8217;s duplicates. The exception message shows the interface/base class that has the clash, and also a comma separated list of all the potential implementations.</p>
<p>I could take that IEnumerable<type> and pass it into a user specified delegate, but I&#8217;m not sure whether that&#8217;s taking AutoRegister too far or not &#8211; if there&#8217;s definite logic you need in your registrations, or if you need named registrations etc., then you might be best either switching to just Register, or mixing AutoRegister with some specific Register commands afterwards?</type></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: srobbins</title>
		<link>http://www.grumpydev.com/2010/03/02/announcing-tinyioc-an-easy-to-use-hassle-free-inversion-of-control-container/comment-page-1/#comment-203</link>
		<dc:creator>srobbins</dc:creator>
		<pubDate>Fri, 05 Mar 2010 14:39:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.grumpydev.com/?p=288#comment-203</guid>
		<description>Thanks for the comment, that T4 thing is pretty cool :-)

You can mix and match AutoRegister and Register, and even AutoRegister more than one assembly, so you could AutoRegister your common library first, then do it against your app assembly to copy over any customisations you have in there.</description>
		<content:encoded><![CDATA[<p>Thanks for the comment, that T4 thing is pretty cool <img src='http://www.grumpydev.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>You can mix and match AutoRegister and Register, and even AutoRegister more than one assembly, so you could AutoRegister your common library first, then do it against your app assembly to copy over any customisations you have in there.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Harry M</title>
		<link>http://www.grumpydev.com/2010/03/02/announcing-tinyioc-an-easy-to-use-hassle-free-inversion-of-control-container/comment-page-1/#comment-202</link>
		<dc:creator>Harry M</dc:creator>
		<pubDate>Fri, 05 Mar 2010 14:17:23 +0000</pubDate>
		<guid isPermaLink="false">http://www.grumpydev.com/?p=288#comment-202</guid>
		<description>How about make it even more configurable:

container.AutoRegister().AmbiguousResolutionBehaviour(types =&gt; types.First())

container.AutoRegister().AmbiguousResolutionBehaviour(types =&gt; throw new AmbiguousResolutionException(types))

container.AutoRegister().AmbiguousResolutionBehaviour(MyCustomMethodForResolvingWhichOneIWant)</description>
		<content:encoded><![CDATA[<p>How about make it even more configurable:</p>
<p>container.AutoRegister().AmbiguousResolutionBehaviour(types =&gt; types.First())</p>
<p>container.AutoRegister().AmbiguousResolutionBehaviour(types =&gt; throw new AmbiguousResolutionException(types))</p>
<p>container.AutoRegister().AmbiguousResolutionBehaviour(MyCustomMethodForResolvingWhichOneIWant)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Harry M</title>
		<link>http://www.grumpydev.com/2010/03/02/announcing-tinyioc-an-easy-to-use-hassle-free-inversion-of-control-container/comment-page-1/#comment-201</link>
		<dc:creator>Harry M</dc:creator>
		<pubDate>Fri, 05 Mar 2010 14:13:10 +0000</pubDate>
		<guid isPermaLink="false">http://www.grumpydev.com/?p=288#comment-201</guid>
		<description>Like it. You can keep it up to date with this http://www.adverseconditionals.com/2010/01/easy-peasy-web-dependencies-using-t4.html :)

It&#039;d be pretty cool if, when faced with multiple implementations, it picked up the one in the launch assembly first. This way you can have a default implementation of a service in a common library, but override it in your different applications.</description>
		<content:encoded><![CDATA[<p>Like it. You can keep it up to date with this <a href="http://www.adverseconditionals.com/2010/01/easy-peasy-web-dependencies-using-t4.html" rel="nofollow">http://www.adverseconditionals.com/2010/01/easy-peasy-web-dependencies-using-t4.html</a> <img src='http://www.grumpydev.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>It&#8217;d be pretty cool if, when faced with multiple implementations, it picked up the one in the launch assembly first. This way you can have a default implementation of a service in a common library, but override it in your different applications.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: srobbins</title>
		<link>http://www.grumpydev.com/2010/03/02/announcing-tinyioc-an-easy-to-use-hassle-free-inversion-of-control-container/comment-page-1/#comment-199</link>
		<dc:creator>srobbins</dc:creator>
		<pubDate>Thu, 04 Mar 2010 14:32:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.grumpydev.com/?p=288#comment-199</guid>
		<description>I think I&#039;d like to keep the default to be &quot;ignoring&quot; duplicates, but it&#039;s a nice idea to add an option for it - either that or return a boolean for whether any issues were found, then it&#039;s up to you whether you do anything about it or not?

I&#039;ll also add support for abstract base classes too, in the same way that interfaces get added.</description>
		<content:encoded><![CDATA[<p>I think I&#8217;d like to keep the default to be &#8220;ignoring&#8221; duplicates, but it&#8217;s a nice idea to add an option for it &#8211; either that or return a boolean for whether any issues were found, then it&#8217;s up to you whether you do anything about it or not?</p>
<p>I&#8217;ll also add support for abstract base classes too, in the same way that interfaces get added.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Craig Stuntz</title>
		<link>http://www.grumpydev.com/2010/03/02/announcing-tinyioc-an-easy-to-use-hassle-free-inversion-of-control-container/comment-page-1/#comment-198</link>
		<dc:creator>Craig Stuntz</dc:creator>
		<pubDate>Thu, 04 Mar 2010 14:24:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.grumpydev.com/?p=288#comment-198</guid>
		<description>What about container.AutoRegister(DuplicateOption.ThrowException) / AutoRegister(DuplicateOption.Ignore)?</description>
		<content:encoded><![CDATA[<p>What about container.AutoRegister(DuplicateOption.ThrowException) / AutoRegister(DuplicateOption.Ignore)?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: John(no) Nolan</title>
		<link>http://www.grumpydev.com/2010/03/02/announcing-tinyioc-an-easy-to-use-hassle-free-inversion-of-control-container/comment-page-1/#comment-191</link>
		<dc:creator>John(no) Nolan</dc:creator>
		<pubDate>Tue, 02 Mar 2010 09:55:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.grumpydev.com/?p=288#comment-191</guid>
		<description>Really enjoying your posts recently Steve. Read half the code last night of TinyIoC and for it looks great. Didn&#039;t understand why you&#039;d put in all in one .cs until this post. Looking forward to the series.</description>
		<content:encoded><![CDATA[<p>Really enjoying your posts recently Steve. Read half the code last night of TinyIoC and for it looks great. Didn&#8217;t understand why you&#8217;d put in all in one .cs until this post. Looking forward to the series.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Will</title>
		<link>http://www.grumpydev.com/2010/03/02/announcing-tinyioc-an-easy-to-use-hassle-free-inversion-of-control-container/comment-page-1/#comment-190</link>
		<dc:creator>Will</dc:creator>
		<pubDate>Tue, 02 Mar 2010 09:01:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.grumpydev.com/?p=288#comment-190</guid>
		<description>It all looks pretty sweet and I love some of the ideas.  Great work!</description>
		<content:encoded><![CDATA[<p>It all looks pretty sweet and I love some of the ideas.  Great work!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: The Morning Brew - Chris Alcock &#187; The Morning Brew #550</title>
		<link>http://www.grumpydev.com/2010/03/02/announcing-tinyioc-an-easy-to-use-hassle-free-inversion-of-control-container/comment-page-1/#comment-189</link>
		<dc:creator>The Morning Brew - Chris Alcock &#187; The Morning Brew #550</dc:creator>
		<pubDate>Tue, 02 Mar 2010 08:29:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.grumpydev.com/?p=288#comment-189</guid>
		<description>[...] Announcing: TinyIoC - An Easy to Use, Hassle Free, Inversion of Control Container - Steven Robbins announces his current &#8216;Pet Project&#8217; to build a simple Inversion of Control Framework, and accompanying blog post series showing it in use and illustrating IOC concepts. Full source is available for this simple IOC container, and reader comments and suggestions are welcome. [...]</description>
		<content:encoded><![CDATA[<p>[...] Announcing: TinyIoC &#8211; An Easy to Use, Hassle Free, Inversion of Control Container &#8211; Steven Robbins announces his current &#8216;Pet Project&#8217; to build a simple Inversion of Control Framework, and accompanying blog post series showing it in use and illustrating IOC concepts. Full source is available for this simple IOC container, and reader comments and suggestions are welcome. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: srobbins</title>
		<link>http://www.grumpydev.com/2010/03/02/announcing-tinyioc-an-easy-to-use-hassle-free-inversion-of-control-container/comment-page-1/#comment-188</link>
		<dc:creator>srobbins</dc:creator>
		<pubDate>Tue, 02 Mar 2010 08:14:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.grumpydev.com/?p=288#comment-188</guid>
		<description>&quot;Last one wins&quot; in that scenario. I did consider throwing an exception, or even adding named registrations, but thought both of those would be significantly less friendly.

In my mind, if you hit this issue you can either:

a. Get rid of autoregistration and switch to a more &quot;standard&quot; manual approach.
or, my preferred option:
b. Auto-register to get the vast majority of registrations done, then manually register your exceptions:

&lt;code&gt;
container.AutoRegister();
container.Register();
container.Register(&quot;OtherOne&quot;);
&lt;/code&gt;</description>
		<content:encoded><![CDATA[<p>&#8220;Last one wins&#8221; in that scenario. I did consider throwing an exception, or even adding named registrations, but thought both of those would be significantly less friendly.</p>
<p>In my mind, if you hit this issue you can either:</p>
<p>a. Get rid of autoregistration and switch to a more &#8220;standard&#8221; manual approach.<br />
or, my preferred option:<br />
b. Auto-register to get the vast majority of registrations done, then manually register your exceptions:</p>
<p><code><br />
container.AutoRegister();<br />
container.Register();<br />
container.Register("OtherOne");<br />
</code></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Graeme Foster</title>
		<link>http://www.grumpydev.com/2010/03/02/announcing-tinyioc-an-easy-to-use-hassle-free-inversion-of-control-container/comment-page-1/#comment-187</link>
		<dc:creator>Graeme Foster</dc:creator>
		<pubDate>Tue, 02 Mar 2010 07:10:21 +0000</pubDate>
		<guid isPermaLink="false">http://www.grumpydev.com/?p=288#comment-187</guid>
		<description>What happens if there are multiple implementations of IMyInterface in the AutoRegister example?</description>
		<content:encoded><![CDATA[<p>What happens if there are multiple implementations of IMyInterface in the AutoRegister example?</p>
]]></content:encoded>
	</item>
</channel>
</rss>
