<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>unity Work Item Rss Feed</title><link>http://www.codeplex.com/unity/WorkItem/List.aspx</link><description>unity Work Item Rss Description</description><item><title>Commented Unassigned: NuGet: Could not install package 'Unity 3.0.1304.0'.  [12731]</title><link>http://unity.codeplex.com/workitem/12731</link><description>&amp;#34;Could not install package &amp;#39;Unity 3.0.1304.0&amp;#39;. You are trying to install this package into a project that targets &amp;#39;.NETFramework,Version&amp;#61;v4.0&amp;#39;, but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.&amp;#34;&lt;br /&gt;&lt;br /&gt;What am I doing wrong&amp;#63; The help file says it supports .Net 4 &amp;#38; VS2010&amp;#63;&lt;br /&gt;Comments: The NuGet package doesn&amp;#39;t list and dependencies. Handy if it said .Net 4.5 was a requirement.</description><author>ben555</author><pubDate>Wed, 22 May 2013 10:38:11 GMT</pubDate><guid isPermaLink="false">Commented Unassigned: NuGet: Could not install package 'Unity 3.0.1304.0'.  [12731] 20130522103811A</guid></item><item><title>Commented Unassigned: NuGet: Could not install package 'Unity 3.0.1304.0'.  [12731]</title><link>http://unity.codeplex.com/workitem/12731</link><description>&amp;#34;Could not install package &amp;#39;Unity 3.0.1304.0&amp;#39;. You are trying to install this package into a project that targets &amp;#39;.NETFramework,Version&amp;#61;v4.0&amp;#39;, but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.&amp;#34;&lt;br /&gt;&lt;br /&gt;What am I doing wrong&amp;#63; The help file says it supports .Net 4 &amp;#38; VS2010&amp;#63;&lt;br /&gt;Comments: Unity 3 requires .NET 4.5.  From the &amp;#91;Release Notes&amp;#93;&amp;#40;https&amp;#58;&amp;#47;&amp;#47;unity.codeplex.com&amp;#47;wikipage&amp;#63;title&amp;#61;Unity3ReleaseNotes&amp;#41;&amp;#58;&amp;#10;&amp;#10;&amp;#62; Supported .NET Frameworks&amp;#58; Microsoft .NET Framework 4.5, .NET for Windows Store Apps &amp;#40;previously known as WinRT&amp;#41;.&amp;#10;&amp;#10;Where did you see the requirement for .NET 4 &amp;#40;so we can fix it up&amp;#41;&amp;#63;&amp;#10;&amp;#10;&amp;#126;&amp;#126;&amp;#10;Randy Levy&amp;#10;&amp;#91;entlib.support&amp;#64;live.com&amp;#93;&amp;#40;mailto&amp;#58;entlib.support&amp;#64;live.com&amp;#41;&amp;#10;Enterprise Library support engineer&amp;#10;&amp;#91;Support How-to&amp;#93;&amp;#40;entlib.codeplex.com&amp;#47;wikipage&amp;#63;title&amp;#61;Support&amp;#37;20How-to&amp;#41; </description><author>randylevy</author><pubDate>Thu, 16 May 2013 15:27:03 GMT</pubDate><guid isPermaLink="false">Commented Unassigned: NuGet: Could not install package 'Unity 3.0.1304.0'.  [12731] 20130516032703P</guid></item><item><title>Created Unassigned: NuGet: Could not install package 'Unity 3.0.1304.0'.  [12731]</title><link>http://unity.codeplex.com/workitem/12731</link><description>&amp;#34;Could not install package &amp;#39;Unity 3.0.1304.0&amp;#39;. You are trying to install this package into a project that targets &amp;#39;.NETFramework,Version&amp;#61;v4.0&amp;#39;, but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.&amp;#34;&lt;br /&gt;&lt;br /&gt;What am I doing wrong&amp;#63; The help file says it supports .Net 4 &amp;#38; VS2010&amp;#63;&lt;br /&gt;</description><author>ben555</author><pubDate>Thu, 16 May 2013 13:43:48 GMT</pubDate><guid isPermaLink="false">Created Unassigned: NuGet: Could not install package 'Unity 3.0.1304.0'.  [12731] 20130516014348P</guid></item><item><title>Edited Unassigned: bug (3.0.1304.0): using InjectionMethodAttribute on virtual method in base and child (when overriden) types results in calling 2+ times when resolving child type [12729]</title><link>http://unity.codeplex.com/workitem/12729</link><description>Breaking change behavior when using InjectionMethodAttribute&amp;#58;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;    public class Thing &lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#91;InjectionMethod&amp;#93;&lt;br /&gt;        public virtual void InitComponent&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&lt;br /&gt;    public class Concrete &amp;#58; Thing&lt;br /&gt;    &amp;#123;&lt;br /&gt;        private static int InvocationCount&amp;#59;&lt;br /&gt;&lt;br /&gt;        public Concrete&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            Console.WriteLine&amp;#40;&amp;#34;.ctor called&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        &amp;#91;InjectionMethod&amp;#93;&lt;br /&gt;        public override void InitComponent&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;          &amp;#47;&amp;#47;  Debug.Assert&amp;#40;&amp;#43;&amp;#43;InvocationCount &amp;#61;&amp;#61; 1&amp;#41;&amp;#59; &amp;#47;&amp;#47; assertion failed&lt;br /&gt;            Console.WriteLine&amp;#40;&amp;#34;init called&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&lt;br /&gt;    public class Program&lt;br /&gt;    &amp;#123;&lt;br /&gt;        private static void Main&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            using &amp;#40;var c &amp;#61; new UnityContainer&amp;#40;&amp;#41;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                c.Resolve&amp;#60;Concrete&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                Console.ReadLine&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;&lt;br /&gt;Output in version 3&amp;#58;&lt;br /&gt;.ctor called&lt;br /&gt;init called&lt;br /&gt;init called&lt;br /&gt;&lt;br /&gt;Output in version 2&amp;#58;&lt;br /&gt;.ctor called&lt;br /&gt;init called&lt;br /&gt;&lt;br /&gt;In version 2 if you comment &amp;#91;InjectionMethod&amp;#93; on child method then InitComponent&amp;#40;&amp;#41; never been called &amp;#40;strange too, but can be &amp;#34;workarounded&amp;#34; with attribute&amp;#41;, and in version 3 it called once.&lt;br /&gt;In version 2 If you remove override then InitComponent&amp;#40;&amp;#41; will be called like expected &amp;#58;-&amp;#47;&lt;br /&gt; &lt;br /&gt;So that&amp;#39;s why it called two times in v3 when both attributes presented. But IMO it is a bug and method should be called once regardless of this &amp;#40;attribute even has AllowMultiple&amp;#61;false&amp;#41;&lt;br /&gt;</description><author>ylemsoul</author><pubDate>Mon, 29 Apr 2013 20:15:35 GMT</pubDate><guid isPermaLink="false">Edited Unassigned: bug (3.0.1304.0): using InjectionMethodAttribute on virtual method in base and child (when overriden) types results in calling 2+ times when resolving child type [12729] 20130429081535P</guid></item><item><title>Created Unassigned: Missing CommonServiceLocator dependency in Nuget package [12730]</title><link>http://unity.codeplex.com/workitem/12730</link><description>Hi guys,&lt;br /&gt;&lt;br /&gt;in the package for the v3.0.1304.0, you have removed the dependency to the package CommonServiceLocator which contains the Microsoft.Practices.ServiceLocation classes.&lt;br /&gt;As the Unity assembly depends on it &amp;#40;via the Microsoft.Practices.Unity.UnityServiceLocator class&amp;#41;, you should re-add the dependency.&lt;br /&gt;Thanks&lt;br /&gt;</description><author>mgrosperrin</author><pubDate>Mon, 29 Apr 2013 11:19:32 GMT</pubDate><guid isPermaLink="false">Created Unassigned: Missing CommonServiceLocator dependency in Nuget package [12730] 20130429111932A</guid></item><item><title>Edited Unassigned: bug (3.0.1304.0): using InjectionMethodAttribute on virtual method in base and child (when overriden) types results in calling 2+ times on resolving child type [12729]</title><link>http://unity.codeplex.com/workitem/12729</link><description>Breaking change behavior when using InjectionMethodAttribute&amp;#58;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;    public class Thing &lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#91;InjectionMethod&amp;#93;&lt;br /&gt;        public virtual void InitComponent&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&lt;br /&gt;    public class Concrete &amp;#58; Thing&lt;br /&gt;    &amp;#123;&lt;br /&gt;        private static int InvocationCount&amp;#59;&lt;br /&gt;&lt;br /&gt;        public Concrete&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            Console.WriteLine&amp;#40;&amp;#34;.ctor called&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        &amp;#91;InjectionMethod&amp;#93;&lt;br /&gt;        public override void InitComponent&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;          &amp;#47;&amp;#47;  Debug.Assert&amp;#40;&amp;#43;&amp;#43;InvocationCount &amp;#61;&amp;#61; 1&amp;#41;&amp;#59; &amp;#47;&amp;#47; assertion failed&lt;br /&gt;            Console.WriteLine&amp;#40;&amp;#34;init called&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&lt;br /&gt;    public class Program&lt;br /&gt;    &amp;#123;&lt;br /&gt;        private static void Main&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            using &amp;#40;var c &amp;#61; new UnityContainer&amp;#40;&amp;#41;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                c.Resolve&amp;#60;Concrete&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                Console.ReadLine&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;&lt;br /&gt;Output in version 3&amp;#58;&lt;br /&gt;.ctor called&lt;br /&gt;init called&lt;br /&gt;init called&lt;br /&gt;&lt;br /&gt;Output in version 2&amp;#58;&lt;br /&gt;.ctor called&lt;br /&gt;init called&lt;br /&gt;&lt;br /&gt;In version 2 if you comment &amp;#91;InjectionMethod&amp;#93; on child method then InitComponent&amp;#40;&amp;#41; never been called &amp;#40;strange too, but can be &amp;#34;workarounded&amp;#34; with attribute&amp;#41;, and in version 3 it called once.&lt;br /&gt;In version 2 If you remove override then InitComponent&amp;#40;&amp;#41; will be called like expected &amp;#58;-&amp;#47;&lt;br /&gt; &lt;br /&gt;So that&amp;#39;s why it called two times in v3 when both attributes presented. But IMO it is a bug and method should be called once regardless of this &amp;#40;attribute even has AllowMultiple&amp;#61;false&amp;#41;&lt;br /&gt;</description><author>ylemsoul</author><pubDate>Mon, 29 Apr 2013 09:09:48 GMT</pubDate><guid isPermaLink="false">Edited Unassigned: bug (3.0.1304.0): using InjectionMethodAttribute on virtual method in base and child (when overriden) types results in calling 2+ times on resolving child type [12729] 20130429090948A</guid></item><item><title>Created Unassigned: bug (3.0.1304.0): using InjectionMethodAttribute on virtual method in base and child (when overriden) types results in calling 2+ times on resolving child type [12729]</title><link>http://unity.codeplex.com/workitem/12729</link><description>Breaking change behavior when using InjectionMethodAttribute&amp;#58;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;    public class Thing &lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#91;InjectionMethod&amp;#93;&lt;br /&gt;        public virtual void InitComponent&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&lt;br /&gt;    public class Concrete &amp;#58; Thing&lt;br /&gt;    &amp;#123;&lt;br /&gt;        private static int InvocationCount&amp;#59;&lt;br /&gt;&lt;br /&gt;        public Concrete&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            Console.WriteLine&amp;#40;&amp;#34;.ctor called&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        &amp;#91;InjectionMethod&amp;#93;&lt;br /&gt;        public override void InitComponent&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;          &amp;#47;&amp;#47;  Debug.Assert&amp;#40;&amp;#43;&amp;#43;InvocationCount &amp;#61;&amp;#61; 1&amp;#41;&amp;#59; &amp;#47;&amp;#47; assertion failed&lt;br /&gt;            Console.WriteLine&amp;#40;&amp;#34;init called&amp;#34;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&lt;br /&gt;    public class Program&lt;br /&gt;    &amp;#123;&lt;br /&gt;        private static void Main&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            using &amp;#40;var c &amp;#61; new UnityContainer&amp;#40;&amp;#41;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                c.Resolve&amp;#60;Concrete&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                Console.ReadLine&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;&lt;br /&gt;Output in version 3&amp;#58;&lt;br /&gt;.ctor called&lt;br /&gt;init called&lt;br /&gt;init called&lt;br /&gt;&lt;br /&gt;Output in version 2&amp;#58;&lt;br /&gt;.ctor called&lt;br /&gt;init called&lt;br /&gt;&lt;br /&gt;In version 2 if you comment &amp;#91;InjectionMethod&amp;#93; on child method then InitComponent&amp;#40;&amp;#41; never been called &amp;#40;strange too, but can be &amp;#34;workarounded&amp;#34; with attribute&amp;#41;, and in version 3 it called once.&lt;br /&gt;In version 2 If you remove override than InitComponent&amp;#40;&amp;#41; will be called like expected &amp;#58;-&amp;#47;&lt;br /&gt; &lt;br /&gt;So that&amp;#39;s why it called two times in v3 when both attributes presented. But IMO it is a bug and method should be called once regardless of this &amp;#40;attribute even has AllowMultiple&amp;#61;false&amp;#41;&lt;br /&gt;</description><author>ylemsoul</author><pubDate>Mon, 29 Apr 2013 09:03:32 GMT</pubDate><guid isPermaLink="false">Created Unassigned: bug (3.0.1304.0): using InjectionMethodAttribute on virtual method in base and child (when overriden) types results in calling 2+ times on resolving child type [12729] 20130429090332A</guid></item><item><title>Created Unassigned: UnityDependencyResolver should use child containers [12728]</title><link>http://unity.codeplex.com/workitem/12728</link><description>Looking at the new UnityDependencyResolver in Unity 3, I am disappointed to see that it doesn&amp;#39;t use child containers per request. This is really considered best-practice at this point and I would like to see it implemented in the default package.&lt;br /&gt;</description><author>Citezein</author><pubDate>Fri, 26 Apr 2013 17:55:26 GMT</pubDate><guid isPermaLink="false">Created Unassigned: UnityDependencyResolver should use child containers [12728] 20130426055526P</guid></item><item><title>Commented Issue: Array dependency and PerResolveLifetimeManager [8777]</title><link>http://unity.codeplex.com/workitem/8777</link><description>&amp;#60;p&amp;#62;Because of the logic inside ArrayResolutionStrategy, default array resolution strategy is not compatible with PerResolveLifetimeManager, because it fires container.ResolveAll which resolves instances in new builder contexts.&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;private static object ResolveArray&amp;#38;lt&amp;#59;T&amp;#38;gt&amp;#59;&amp;#40;IBuilderContext context&amp;#41;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;&amp;#123;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;    List&amp;#38;lt&amp;#59;T&amp;#38;gt&amp;#59; results &amp;#61; new List&amp;#38;lt&amp;#59;T&amp;#38;gt&amp;#59;&amp;#40;context.NewBuildUp&amp;#38;lt&amp;#59;IUnityContainer&amp;#38;gt&amp;#59;&amp;#40;&amp;#41;.ResolveAll&amp;#38;lt&amp;#59;T&amp;#38;gt&amp;#59;&amp;#40;new ResolverOverride&amp;#91;0&amp;#93;&amp;#41;&amp;#41;&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;    return results.ToArray&amp;#40;&amp;#41;&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;&amp;#125;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;&amp;#38;nbsp&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;One way to fix this is to resolve UnityContainer, take it&amp;#38;&amp;#35;39&amp;#59;s Registrations and resolve array items in old context via NewBuildUp.&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&lt;br /&gt;Comments: This problem still exists in 2.1.505.2. I just spent an hour tracking it down.</description><author>malevy</author><pubDate>Mon, 15 Apr 2013 19:29:09 GMT</pubDate><guid isPermaLink="false">Commented Issue: Array dependency and PerResolveLifetimeManager [8777] 20130415072909P</guid></item><item><title>Commented Issue: circular dependencies may cause stack overflow [11131]</title><link>http://unity.codeplex.com/workitem/11131</link><description>&amp;#60;p&amp;#62;The code sample below, when run, will fail due to a stack overflow. It is caused by Unity&amp;#38;&amp;#35;39&amp;#59;s handling of ConsoleLogger, an ILogger, which depends upon another ILogger &amp;#40;the decorator pattern&amp;#41;.  If you comment out the &amp;#38;quot&amp;#59;RegisterType&amp;#38;quot&amp;#59; line and uncomment the &amp;#38;quot&amp;#59;RegisterInstance&amp;#38;quot&amp;#59; line, it will work.  Sometimes these circular dependencies can be hard to find if someone else put them in code some time ago. &amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;&amp;#38;nbsp&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;Can you make the resolution mechanism detect circular references and throw an informative error message, instead of having us infer the circular reference by a stack overflow&amp;#63;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;&amp;#38;nbsp&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;using System&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;using Microsoft.Practices.Unity&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;using Microsoft.VisualStudio.TestTools.UnitTesting&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;&amp;#38;nbsp&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;namespace TestContractPerformance&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;&amp;#123;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;    &amp;#91;TestClass&amp;#93;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;    public class UnityRecursionTest&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;    &amp;#123;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        &amp;#91;TestMethod&amp;#93;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        public void TestMethod1&amp;#40;&amp;#41;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        &amp;#123;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;            IUnityContainer container &amp;#61; new UnityContainer&amp;#40;&amp;#41;&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;            container.RegisterType&amp;#38;lt&amp;#59;ILogger,ConsoleLogger&amp;#38;gt&amp;#59;&amp;#40;&amp;#41;&amp;#59;&amp;#47;&amp;#47;this will cause a stack overflow due to recursive resolution&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;            &amp;#47;&amp;#47;container.RegisterInstance&amp;#38;lt&amp;#59;ILogger&amp;#38;gt&amp;#59;&amp;#40;new ConsoleLogger&amp;#40;&amp;#41;&amp;#41;&amp;#59;&amp;#47;&amp;#47;this works&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;            Foo foo &amp;#61; container.Resolve&amp;#38;lt&amp;#59;Foo&amp;#38;gt&amp;#59;&amp;#40;&amp;#41;&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;            foo.Go&amp;#40;&amp;#41;&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;&amp;#38;nbsp&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        &amp;#125;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;    &amp;#125;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;&amp;#38;nbsp&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;    public class ConsoleLogger &amp;#58; ILogger&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;    &amp;#123;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        private readonly ILogger _otherLogger&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;&amp;#38;nbsp&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        public ConsoleLogger&amp;#40;ILogger otherLogger&amp;#41;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        &amp;#123;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;            _otherLogger &amp;#61; otherLogger&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        &amp;#125;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;&amp;#38;nbsp&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        public ConsoleLogger&amp;#40;&amp;#41;&amp;#123;&amp;#125;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;&amp;#38;nbsp&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        public void Log&amp;#40;string message&amp;#41;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        &amp;#123;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;            Console.WriteLine&amp;#40;message&amp;#41;&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;            if &amp;#40;_otherLogger &amp;#33;&amp;#61; null&amp;#41;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;            &amp;#123;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;                _otherLogger.Log&amp;#40;message&amp;#41;&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;            &amp;#125;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        &amp;#125;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;    &amp;#125;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;&amp;#38;nbsp&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;    public class Foo &amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;    &amp;#123;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        private readonly ILogger _logger&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;&amp;#38;nbsp&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        public Foo&amp;#40;ILogger logger&amp;#41;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        &amp;#123;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;            _logger &amp;#61; logger&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        &amp;#125;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;&amp;#38;nbsp&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        public void Go&amp;#40;&amp;#41;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        &amp;#123;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;            _logger.Log&amp;#40;&amp;#38;quot&amp;#59;Go&amp;#38;quot&amp;#59;&amp;#41;&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        &amp;#125;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;    &amp;#125;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;&amp;#38;nbsp&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;    public interface ILogger&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;    &amp;#123;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;        void Log&amp;#40;string message&amp;#41;&amp;#59;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;    &amp;#125;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&amp;#60;p&amp;#62;&amp;#125;&amp;#60;&amp;#47;p&amp;#62;&lt;br /&gt;&lt;br /&gt;Comments: I think this is a rather grave problem in Unity since a StackOverflowException in .Net leads to the termination of the process.&amp;#10;&amp;#10;IIS just died on me a few days ago and I was not able to find the cause &amp;#40;guess what&amp;#58; no stacktrace&amp;#41;. Given that it is possible to detect circular dependencies, why isn&amp;#39;t it done&amp;#63;</description><author>stesieber</author><pubDate>Tue, 09 Apr 2013 15:31:56 GMT</pubDate><guid isPermaLink="false">Commented Issue: circular dependencies may cause stack overflow [11131] 20130409033156P</guid></item><item><title>Commented Issue: Add Portable Class Library support [12706]</title><link>http://unity.codeplex.com/workitem/12706</link><description>Users should be able to use Unity everywhere &amp;#40;.NET, Windows Phone, WinRT&amp;#41;&lt;br /&gt;Comments: Since Unity should only be referenced in the Composition Root &amp;#40;the startup path of your application&amp;#41; creating a PCL would be rather useless. The Composition Root is always application specific, and you wouldn&amp;#39;t share that code over a Silverlight, Windows Phone and WCF application.</description><author>dot_NET_Junkie</author><pubDate>Fri, 05 Apr 2013 16:58:24 GMT</pubDate><guid isPermaLink="false">Commented Issue: Add Portable Class Library support [12706] 20130405045824P</guid></item><item><title>Commented Issue: Add Portable Class Library support [12706]</title><link>http://unity.codeplex.com/workitem/12706</link><description>Users should be able to use Unity everywhere &amp;#40;.NET, Windows Phone, WinRT&amp;#41;&lt;br /&gt;Comments: PCL is more and more important &amp;#33;</description><author>amaq</author><pubDate>Fri, 05 Apr 2013 14:35:11 GMT</pubDate><guid isPermaLink="false">Commented Issue: Add Portable Class Library support [12706] 20130405023511P</guid></item><item><title>Commented Issue: Unity not respecting HierarchicalLifetimeManager when manually registering IServiceLocator [12727]</title><link>http://unity.codeplex.com/workitem/12727</link><description>I&amp;#39;m seeing some unexpected behaviour in Unity when registering and resolving IServiceLocator using the HierarchicalLifetimeManager.&lt;br /&gt;&lt;br /&gt;What I&amp;#39;m seeing suggests that Unity treats the UnityServiceLocator as a static singleton, even when it is configured otherwise. This behaviour seems to be particular to UnityServiceLocator.&lt;br /&gt;&lt;br /&gt;Background&amp;#58; I am slowly phasing out the &amp;#34;static&amp;#34; ServiceLocator in a few places in our code where it exists. The first step was going to be to register IServiceLocator in Unity and then have it injected as a dependency into those classes that use it.&lt;br /&gt;&lt;br /&gt;In the following code, I register an injection factory to create a new instance of UnityServiceLocator. I also scope it with HierarchicalLifetimeManager to give me one instance per child container&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;private static void Main&amp;#40;string&amp;#91;&amp;#93; args&amp;#41;&lt;br /&gt;&amp;#123;&lt;br /&gt;    var container &amp;#61; new UnityContainer&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;    container.RegisterType&amp;#60;IServiceLocator&amp;#62;&amp;#40;&lt;br /&gt;        new HierarchicalLifetimeManager&amp;#40;&amp;#41;,&lt;br /&gt;        new InjectionFactory&amp;#40;&lt;br /&gt;            c &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    Console.WriteLine&amp;#40;&amp;#34;InjectionFactory invoked with container&amp;#58; &amp;#34; &amp;#43; c.GetHashCode&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;                    return new UnityServiceLocator&amp;#40;c&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#125;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;    container.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; expect to see console output here&lt;br /&gt;    container.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; don&amp;#39;t expect to see console output here&lt;br /&gt;&lt;br /&gt;    var child &amp;#61; container.CreateChildContainer&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;    child.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; expect to see console output here&lt;br /&gt;    container.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; don&amp;#39;t expect to see console output here&lt;br /&gt;&lt;br /&gt;    var anotherChildContainer &amp;#61; container.CreateChildContainer&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;    anotherChildContainer.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; expect to see console output here&lt;br /&gt;    anotherChildContainer.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; don&amp;#39;t expect to see console output here&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;I would expect the above code to invoke the factory, create the UnityServiceLocator instance and write out console output three times, once for each container. It doesn&amp;#39;t - it does it once, as if I&amp;#39;d registered it as a singleton&amp;#58;&lt;br /&gt;&lt;br /&gt;InjectionFactory invoked with container&amp;#58; 20903718&lt;br /&gt;&lt;br /&gt;It gets worse&amp;#58;&lt;br /&gt;&lt;br /&gt;If I now make my own class implement IServiceLocator &amp;#40;literally, implement the interface, one ctor which takes IUnityContainer, and have all methods throw NotImplementedException&amp;#41;, and swap the line&lt;br /&gt;&lt;br /&gt;     return new UnityServiceLocator&amp;#40;c&amp;#41;&amp;#59;&lt;br /&gt;with&lt;br /&gt;&lt;br /&gt;     return new MyUnityServiceLocator&amp;#40;c&amp;#41;&amp;#59;&lt;br /&gt;This starts behaving the way I&amp;#39;d expect&amp;#58;&lt;br /&gt;&lt;br /&gt;InjectionFactory invoked with container&amp;#58; 20903718 &lt;br /&gt;InjectionFactory invoked with container&amp;#58; 51746094 &lt;br /&gt;InjectionFactory invoked with container&amp;#58; 41215084&lt;br /&gt;&lt;br /&gt;I just cannot understand this behaviour unless Unity treats UnityServiceLocator as a special case.&lt;br /&gt;&lt;br /&gt;This feels like a bug to me, or possibly some undocumented special behaviour.&lt;br /&gt;&lt;br /&gt;Can someone confirm if this is a bug or by design&amp;#63;&lt;br /&gt;Comments: Thanks Randy, this explains everything. I&amp;#39;ve gone down the route of implementing IServiceLocator myself, although I think your suggestion to override the registration should work too.</description><author>rob_levine</author><pubDate>Tue, 19 Mar 2013 08:44:44 GMT</pubDate><guid isPermaLink="false">Commented Issue: Unity not respecting HierarchicalLifetimeManager when manually registering IServiceLocator [12727] 20130319084444A</guid></item><item><title>Commented Issue: Unity not respecting HierarchicalLifetimeManager when manually registering IServiceLocator [12727]</title><link>http://unity.codeplex.com/workitem/12727</link><description>I&amp;#39;m seeing some unexpected behaviour in Unity when registering and resolving IServiceLocator using the HierarchicalLifetimeManager.&lt;br /&gt;&lt;br /&gt;What I&amp;#39;m seeing suggests that Unity treats the UnityServiceLocator as a static singleton, even when it is configured otherwise. This behaviour seems to be particular to UnityServiceLocator.&lt;br /&gt;&lt;br /&gt;Background&amp;#58; I am slowly phasing out the &amp;#34;static&amp;#34; ServiceLocator in a few places in our code where it exists. The first step was going to be to register IServiceLocator in Unity and then have it injected as a dependency into those classes that use it.&lt;br /&gt;&lt;br /&gt;In the following code, I register an injection factory to create a new instance of UnityServiceLocator. I also scope it with HierarchicalLifetimeManager to give me one instance per child container&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;private static void Main&amp;#40;string&amp;#91;&amp;#93; args&amp;#41;&lt;br /&gt;&amp;#123;&lt;br /&gt;    var container &amp;#61; new UnityContainer&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;    container.RegisterType&amp;#60;IServiceLocator&amp;#62;&amp;#40;&lt;br /&gt;        new HierarchicalLifetimeManager&amp;#40;&amp;#41;,&lt;br /&gt;        new InjectionFactory&amp;#40;&lt;br /&gt;            c &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    Console.WriteLine&amp;#40;&amp;#34;InjectionFactory invoked with container&amp;#58; &amp;#34; &amp;#43; c.GetHashCode&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;                    return new UnityServiceLocator&amp;#40;c&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#125;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;    container.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; expect to see console output here&lt;br /&gt;    container.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; don&amp;#39;t expect to see console output here&lt;br /&gt;&lt;br /&gt;    var child &amp;#61; container.CreateChildContainer&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;    child.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; expect to see console output here&lt;br /&gt;    container.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; don&amp;#39;t expect to see console output here&lt;br /&gt;&lt;br /&gt;    var anotherChildContainer &amp;#61; container.CreateChildContainer&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;    anotherChildContainer.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; expect to see console output here&lt;br /&gt;    anotherChildContainer.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; don&amp;#39;t expect to see console output here&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;I would expect the above code to invoke the factory, create the UnityServiceLocator instance and write out console output three times, once for each container. It doesn&amp;#39;t - it does it once, as if I&amp;#39;d registered it as a singleton&amp;#58;&lt;br /&gt;&lt;br /&gt;InjectionFactory invoked with container&amp;#58; 20903718&lt;br /&gt;&lt;br /&gt;It gets worse&amp;#58;&lt;br /&gt;&lt;br /&gt;If I now make my own class implement IServiceLocator &amp;#40;literally, implement the interface, one ctor which takes IUnityContainer, and have all methods throw NotImplementedException&amp;#41;, and swap the line&lt;br /&gt;&lt;br /&gt;     return new UnityServiceLocator&amp;#40;c&amp;#41;&amp;#59;&lt;br /&gt;with&lt;br /&gt;&lt;br /&gt;     return new MyUnityServiceLocator&amp;#40;c&amp;#41;&amp;#59;&lt;br /&gt;This starts behaving the way I&amp;#39;d expect&amp;#58;&lt;br /&gt;&lt;br /&gt;InjectionFactory invoked with container&amp;#58; 20903718 &lt;br /&gt;InjectionFactory invoked with container&amp;#58; 51746094 &lt;br /&gt;InjectionFactory invoked with container&amp;#58; 41215084&lt;br /&gt;&lt;br /&gt;I just cannot understand this behaviour unless Unity treats UnityServiceLocator as a special case.&lt;br /&gt;&lt;br /&gt;This feels like a bug to me, or possibly some undocumented special behaviour.&lt;br /&gt;&lt;br /&gt;Can someone confirm if this is a bug or by design&amp;#63;&lt;br /&gt;Comments: The reason why you are seeing the above behavior is that UnityServiceLocator registers itself in the container with an ExternallyControlledLifetimeManager lifetime&amp;#58;&amp;#10;&amp;#10;&amp;#96;&amp;#96;&amp;#96;&amp;#10;public UnityServiceLocator&amp;#40;IUnityContainer container&amp;#41;&amp;#10;&amp;#123;&amp;#10;    this.container &amp;#61; container&amp;#59;&amp;#10;    container.RegisterInstance&amp;#60;IServiceLocator&amp;#62;&amp;#40;this, new ExternallyControlledLifetimeManager&amp;#40;&amp;#41;&amp;#41;&amp;#59;&amp;#10;&amp;#125;&amp;#10;&amp;#96;&amp;#96;&amp;#96;&amp;#10;I would say that this is done by design.  As you say if you need a different behavior, then you could create your own locator or potentially override the original lifetime manager registration with another.&amp;#10;&amp;#96;&amp;#96;&amp;#96;&amp;#10;new InjectionFactory&amp;#40;&amp;#10;    c &amp;#61;&amp;#62;&amp;#10;    &amp;#123;&amp;#10;        Console.WriteLine&amp;#40;&amp;#34;InjectionFactory invoked with container&amp;#58; &amp;#34; &amp;#43; c.GetHashCode&amp;#40;&amp;#41;&amp;#41;&amp;#59;&amp;#10;        var locator &amp;#61; new UnityServiceLocator&amp;#40;c&amp;#41;&amp;#59;&amp;#10;        c.RegisterInstance&amp;#60;IServiceLocator&amp;#62;&amp;#40;locator, new HierarchicalLifetimeManager&amp;#40;&amp;#41;&amp;#41;&amp;#59;&amp;#10;        return locator&amp;#59;&amp;#10;    &amp;#125;&amp;#41;&amp;#10;&amp;#96;&amp;#96;&amp;#96;&amp;#10;&amp;#10;&amp;#126;&amp;#126;&amp;#10;Randy Levy&amp;#10;&amp;#91;entlib.support&amp;#64;live.com&amp;#93;&amp;#40;mailto&amp;#58;entlib.support&amp;#64;live.com&amp;#41;&amp;#10;Enterprise Library support engineer&amp;#10;&amp;#91;Support How-to&amp;#93;&amp;#40;entlib.codeplex.com&amp;#47;wikipage&amp;#63;title&amp;#61;Support&amp;#37;20How-to&amp;#41; </description><author>randylevy</author><pubDate>Sat, 16 Mar 2013 06:35:33 GMT</pubDate><guid isPermaLink="false">Commented Issue: Unity not respecting HierarchicalLifetimeManager when manually registering IServiceLocator [12727] 20130316063533A</guid></item><item><title>Created Issue: Unity not respecting HierarchicalLifetimeManager when manually registering IServiceLocator [12727]</title><link>http://unity.codeplex.com/workitem/12727</link><description>I&amp;#39;m seeing some unexpected behaviour in Unity when registering and resolving IServiceLocator using the HierarchicalLifetimeManager.&lt;br /&gt;&lt;br /&gt;What I&amp;#39;m seeing suggests that Unity treats the UnityServiceLocator as a static singleton, even when it is configured otherwise. This behaviour seems to be particular to UnityServiceLocator.&lt;br /&gt;&lt;br /&gt;Background&amp;#58; I am slowly phasing out the &amp;#34;static&amp;#34; ServiceLocator in a few places in our code where it exists. The first step was going to be to register IServiceLocator in Unity and then have it injected as a dependency into those classes that use it.&lt;br /&gt;&lt;br /&gt;In the following code, I register an injection factory to create a new instance of UnityServiceLocator. I also scope it with HierarchicalLifetimeManager to give me one instance per child container&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;private static void Main&amp;#40;string&amp;#91;&amp;#93; args&amp;#41;&lt;br /&gt;&amp;#123;&lt;br /&gt;    var container &amp;#61; new UnityContainer&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;    container.RegisterType&amp;#60;IServiceLocator&amp;#62;&amp;#40;&lt;br /&gt;        new HierarchicalLifetimeManager&amp;#40;&amp;#41;,&lt;br /&gt;        new InjectionFactory&amp;#40;&lt;br /&gt;            c &amp;#61;&amp;#62;&lt;br /&gt;                &amp;#123;&lt;br /&gt;                    Console.WriteLine&amp;#40;&amp;#34;InjectionFactory invoked with container&amp;#58; &amp;#34; &amp;#43; c.GetHashCode&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;                    return new UnityServiceLocator&amp;#40;c&amp;#41;&amp;#59;&lt;br /&gt;                &amp;#125;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;    container.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; expect to see console output here&lt;br /&gt;    container.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; don&amp;#39;t expect to see console output here&lt;br /&gt;&lt;br /&gt;    var child &amp;#61; container.CreateChildContainer&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;    child.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; expect to see console output here&lt;br /&gt;    container.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; don&amp;#39;t expect to see console output here&lt;br /&gt;&lt;br /&gt;    var anotherChildContainer &amp;#61; container.CreateChildContainer&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;    anotherChildContainer.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; expect to see console output here&lt;br /&gt;    anotherChildContainer.Resolve&amp;#60;IServiceLocator&amp;#62;&amp;#40;&amp;#41;&amp;#59; &amp;#47;&amp;#47; don&amp;#39;t expect to see console output here&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;I would expect the above code to invoke the factory, create the UnityServiceLocator instance and write out console output three times, once for each container. It doesn&amp;#39;t - it does it once, as if I&amp;#39;d registered it as a singleton&amp;#58;&lt;br /&gt;&lt;br /&gt;InjectionFactory invoked with container&amp;#58; 20903718&lt;br /&gt;&lt;br /&gt;It gets worse&amp;#58;&lt;br /&gt;&lt;br /&gt;If I now make my own class implement IServiceLocator &amp;#40;literally, implement the interface, one ctor which takes IUnityContainer, and have all methods throw NotImplementedException&amp;#41;, and swap the line&lt;br /&gt;&lt;br /&gt;     return new UnityServiceLocator&amp;#40;c&amp;#41;&amp;#59;&lt;br /&gt;with&lt;br /&gt;&lt;br /&gt;     return new MyUnityServiceLocator&amp;#40;c&amp;#41;&amp;#59;&lt;br /&gt;This starts behaving the way I&amp;#39;d expect&amp;#58;&lt;br /&gt;&lt;br /&gt;InjectionFactory invoked with container&amp;#58; 20903718 &lt;br /&gt;InjectionFactory invoked with container&amp;#58; 51746094 &lt;br /&gt;InjectionFactory invoked with container&amp;#58; 41215084&lt;br /&gt;&lt;br /&gt;I just cannot understand this behaviour unless Unity treats UnityServiceLocator as a special case.&lt;br /&gt;&lt;br /&gt;This feels like a bug to me, or possibly some undocumented special behaviour.&lt;br /&gt;&lt;br /&gt;Can someone confirm if this is a bug or by design&amp;#63;&lt;br /&gt;</description><author>rob_levine</author><pubDate>Fri, 15 Mar 2013 12:23:49 GMT</pubDate><guid isPermaLink="false">Created Issue: Unity not respecting HierarchicalLifetimeManager when manually registering IServiceLocator [12727] 20130315122349P</guid></item><item><title>Commented Issue: Unity does not respect lifetime manager for call handler [12726]</title><link>http://unity.codeplex.com/workitem/12726</link><description>Even if a call handler &amp;#40;interception&amp;#41; is registered as a singleton, multiple instances are generated. This unit test demonstrates the behavior&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;using System.Diagnostics&amp;#59;&lt;br /&gt;using System.Threading&amp;#59;&lt;br /&gt;using Microsoft.Practices.Unity&amp;#59;&lt;br /&gt;using Microsoft.Practices.Unity.InterceptionExtension&amp;#59;&lt;br /&gt;using Xunit&amp;#59;&lt;br /&gt;using Xunit.Extensions&amp;#59;&lt;br /&gt;&lt;br /&gt;namespace UnityTests&lt;br /&gt;&amp;#123;&lt;br /&gt;    public class CallHandlerLifetime&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#91;Theory&amp;#93;&lt;br /&gt;        &amp;#91;InlineData&amp;#40;true&amp;#41;&amp;#93;&lt;br /&gt;        &amp;#91;InlineData&amp;#40;false&amp;#41;&amp;#93;&lt;br /&gt;        public void UnityRespectsLifetimeManagerForCallhandler&amp;#40;bool useSingleton&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            TestHandler.ResetInstanceCount&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            using &amp;#40;IUnityContainer container &amp;#61; new UnityContainer&amp;#40;&amp;#41;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                if &amp;#40;useSingleton&amp;#41;&lt;br /&gt;                    container.RegisterType&amp;#60;TestHandler&amp;#62;&amp;#40;new ContainerControlledLifetimeManager&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                container.AddNewExtension&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&lt;br /&gt;                         .Configure&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&lt;br /&gt;                         .AddPolicy&amp;#40;&amp;#34;test&amp;#34;&amp;#41;&lt;br /&gt;                         .AddMatchingRule&amp;#40;new NamespaceMatchingRule&amp;#40;GetType&amp;#40;&amp;#41;.Namespace&amp;#41;&amp;#41;&lt;br /&gt;                         .AddCallHandler&amp;#60;TestHandler&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                container.RegisterType&amp;#40;typeof &amp;#40;IInterface&amp;#41;, typeof &amp;#40;Implementation&amp;#41;,&lt;br /&gt;                                       new Interceptor&amp;#60;InterfaceInterceptor&amp;#62;&amp;#40;&amp;#41;,&lt;br /&gt;                                       new InterceptionBehavior&amp;#60;PolicyInjectionBehavior&amp;#62;&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                Assert.Equal&amp;#40;0, TestHandler.InstanceCount&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                container.Resolve&amp;#60;IInterface&amp;#62;&amp;#40;&amp;#41;.Foo&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                &amp;#47;&amp;#47; interception will have needed to use a test handler&lt;br /&gt;                Assert.Equal&amp;#40;1, TestHandler.InstanceCount&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                &amp;#47;&amp;#47; 2nd resolve for test handler&lt;br /&gt;                container.Resolve&amp;#60;TestHandler&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                &amp;#47;&amp;#47; did we get singleton behavior as expected&amp;#63;&lt;br /&gt;                Assert.Equal&amp;#40;useSingleton &amp;#63; 1 &amp;#58; 2, TestHandler.InstanceCount&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public interface IInterface&lt;br /&gt;        &amp;#123;&lt;br /&gt;            void Foo&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        private class Implementation &amp;#58; IInterface&lt;br /&gt;        &amp;#123;&lt;br /&gt;            void IInterface.Foo&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        internal class TestHandler &amp;#58; ICallHandler&lt;br /&gt;        &amp;#123;&lt;br /&gt;            private static int NextId&amp;#59;&lt;br /&gt;            private readonly int id&amp;#59;&lt;br /&gt;&lt;br /&gt;            public TestHandler&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                id &amp;#61; Interlocked.Increment&amp;#40;ref NextId&amp;#41;&amp;#59;&lt;br /&gt;                Debug.WriteLine&amp;#40;string.Format&amp;#40;&amp;#34;Created instance &amp;#123;0&amp;#125;.&amp;#34;, id&amp;#41;, GetType&amp;#40;&amp;#41;.Name&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;            public static int InstanceCount&lt;br /&gt;            &amp;#123;&lt;br /&gt;                get &amp;#123; return NextId&amp;#59; &amp;#125;&lt;br /&gt;                private set &amp;#123; NextId &amp;#61; value&amp;#59; &amp;#125;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;            IMethodReturn ICallHandler.Invoke&amp;#40;IMethodInvocation input, GetNextHandlerDelegate getNext&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                return getNext&amp;#40;&amp;#41;&amp;#40;input, getNext&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;            public int Order &amp;#123; get&amp;#59; set&amp;#59; &amp;#125;&lt;br /&gt;&lt;br /&gt;            internal static void ResetInstanceCount&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                InstanceCount &amp;#61; 0&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;Comments: Usually, one does not want to directly resolve their CallHandler so simply registering the CallHandler with a ContainerControlledLifetimeManager is sufficient.  This creates a single call handler for all interception but not for resolving the call handler directly &amp;#40;that is not a typical approach&amp;#41;.&amp;#10;&amp;#10;If you want a true singleton you can follow one of the two approaches I outlined.&amp;#10;&amp;#10;&amp;#126;&amp;#126;&amp;#10;Randy Levy&amp;#10;&amp;#91;entlib.support&amp;#64;live.com&amp;#93;&amp;#40;mailto&amp;#58;entlib.support&amp;#64;live.com&amp;#41;&amp;#10;Enterprise Library support engineer&amp;#10;&amp;#91;Support How-to&amp;#93;&amp;#40;entlib.codeplex.com&amp;#47;wikipage&amp;#63;title&amp;#61;Support&amp;#37;20How-to&amp;#41; </description><author>randylevy</author><pubDate>Tue, 26 Feb 2013 14:00:05 GMT</pubDate><guid isPermaLink="false">Commented Issue: Unity does not respect lifetime manager for call handler [12726] 20130226020005P</guid></item><item><title>Commented Issue: Unity does not respect lifetime manager for call handler [12726]</title><link>http://unity.codeplex.com/workitem/12726</link><description>Even if a call handler &amp;#40;interception&amp;#41; is registered as a singleton, multiple instances are generated. This unit test demonstrates the behavior&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;using System.Diagnostics&amp;#59;&lt;br /&gt;using System.Threading&amp;#59;&lt;br /&gt;using Microsoft.Practices.Unity&amp;#59;&lt;br /&gt;using Microsoft.Practices.Unity.InterceptionExtension&amp;#59;&lt;br /&gt;using Xunit&amp;#59;&lt;br /&gt;using Xunit.Extensions&amp;#59;&lt;br /&gt;&lt;br /&gt;namespace UnityTests&lt;br /&gt;&amp;#123;&lt;br /&gt;    public class CallHandlerLifetime&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#91;Theory&amp;#93;&lt;br /&gt;        &amp;#91;InlineData&amp;#40;true&amp;#41;&amp;#93;&lt;br /&gt;        &amp;#91;InlineData&amp;#40;false&amp;#41;&amp;#93;&lt;br /&gt;        public void UnityRespectsLifetimeManagerForCallhandler&amp;#40;bool useSingleton&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            TestHandler.ResetInstanceCount&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            using &amp;#40;IUnityContainer container &amp;#61; new UnityContainer&amp;#40;&amp;#41;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                if &amp;#40;useSingleton&amp;#41;&lt;br /&gt;                    container.RegisterType&amp;#60;TestHandler&amp;#62;&amp;#40;new ContainerControlledLifetimeManager&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                container.AddNewExtension&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&lt;br /&gt;                         .Configure&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&lt;br /&gt;                         .AddPolicy&amp;#40;&amp;#34;test&amp;#34;&amp;#41;&lt;br /&gt;                         .AddMatchingRule&amp;#40;new NamespaceMatchingRule&amp;#40;GetType&amp;#40;&amp;#41;.Namespace&amp;#41;&amp;#41;&lt;br /&gt;                         .AddCallHandler&amp;#60;TestHandler&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                container.RegisterType&amp;#40;typeof &amp;#40;IInterface&amp;#41;, typeof &amp;#40;Implementation&amp;#41;,&lt;br /&gt;                                       new Interceptor&amp;#60;InterfaceInterceptor&amp;#62;&amp;#40;&amp;#41;,&lt;br /&gt;                                       new InterceptionBehavior&amp;#60;PolicyInjectionBehavior&amp;#62;&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                Assert.Equal&amp;#40;0, TestHandler.InstanceCount&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                container.Resolve&amp;#60;IInterface&amp;#62;&amp;#40;&amp;#41;.Foo&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                &amp;#47;&amp;#47; interception will have needed to use a test handler&lt;br /&gt;                Assert.Equal&amp;#40;1, TestHandler.InstanceCount&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                &amp;#47;&amp;#47; 2nd resolve for test handler&lt;br /&gt;                container.Resolve&amp;#60;TestHandler&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                &amp;#47;&amp;#47; did we get singleton behavior as expected&amp;#63;&lt;br /&gt;                Assert.Equal&amp;#40;useSingleton &amp;#63; 1 &amp;#58; 2, TestHandler.InstanceCount&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public interface IInterface&lt;br /&gt;        &amp;#123;&lt;br /&gt;            void Foo&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        private class Implementation &amp;#58; IInterface&lt;br /&gt;        &amp;#123;&lt;br /&gt;            void IInterface.Foo&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        internal class TestHandler &amp;#58; ICallHandler&lt;br /&gt;        &amp;#123;&lt;br /&gt;            private static int NextId&amp;#59;&lt;br /&gt;            private readonly int id&amp;#59;&lt;br /&gt;&lt;br /&gt;            public TestHandler&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                id &amp;#61; Interlocked.Increment&amp;#40;ref NextId&amp;#41;&amp;#59;&lt;br /&gt;                Debug.WriteLine&amp;#40;string.Format&amp;#40;&amp;#34;Created instance &amp;#123;0&amp;#125;.&amp;#34;, id&amp;#41;, GetType&amp;#40;&amp;#41;.Name&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;            public static int InstanceCount&lt;br /&gt;            &amp;#123;&lt;br /&gt;                get &amp;#123; return NextId&amp;#59; &amp;#125;&lt;br /&gt;                private set &amp;#123; NextId &amp;#61; value&amp;#59; &amp;#125;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;            IMethodReturn ICallHandler.Invoke&amp;#40;IMethodInvocation input, GetNextHandlerDelegate getNext&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                return getNext&amp;#40;&amp;#41;&amp;#40;input, getNext&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;            public int Order &amp;#123; get&amp;#59; set&amp;#59; &amp;#125;&lt;br /&gt;&lt;br /&gt;            internal static void ResetInstanceCount&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                InstanceCount &amp;#61; 0&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;Comments: Well, I just wanted to test it and change the AddCallHandler call to use the suggested lifetime manager. This means there is only one registration for the TestHandler class. Still, singleton behavior is not satisfied&amp;#58;&amp;#10;&amp;#10;&amp;#96;&amp;#96;&amp;#96;&amp;#10;                LifetimeManager lifetimeManager &amp;#61; useSingleton&amp;#10;                                                      &amp;#63; &amp;#40;LifetimeManager&amp;#41; new ContainerControlledLifetimeManager&amp;#40;&amp;#41;&amp;#10;                                                      &amp;#58; new TransientLifetimeManager&amp;#40;&amp;#41;&amp;#59;&amp;#10;&amp;#10;                container.AddNewExtension&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&amp;#10;                         .Configure&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&amp;#10;                         .AddPolicy&amp;#40;&amp;#34;test&amp;#34;&amp;#41;&amp;#10;                         .AddMatchingRule&amp;#40;new NamespaceMatchingRule&amp;#40;GetType&amp;#40;&amp;#41;.Namespace&amp;#41;&amp;#41;&amp;#10;                         .AddCallHandler&amp;#60;TestHandler&amp;#62;&amp;#40;lifetimeManager&amp;#41;&amp;#59;&amp;#10;&amp;#10;&amp;#96;&amp;#96;&amp;#96;&amp;#10;&amp;#10;The test still fails. A second instance of the TestHandler is created on container.Resolve&amp;#60;TestHandler&amp;#62;&amp;#40;&amp;#41;. </description><author>JochenZ</author><pubDate>Tue, 26 Feb 2013 08:32:13 GMT</pubDate><guid isPermaLink="false">Commented Issue: Unity does not respect lifetime manager for call handler [12726] 20130226083213A</guid></item><item><title>Commented Issue: Unity does not respect lifetime manager for call handler [12726]</title><link>http://unity.codeplex.com/workitem/12726</link><description>Even if a call handler &amp;#40;interception&amp;#41; is registered as a singleton, multiple instances are generated. This unit test demonstrates the behavior&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;using System.Diagnostics&amp;#59;&lt;br /&gt;using System.Threading&amp;#59;&lt;br /&gt;using Microsoft.Practices.Unity&amp;#59;&lt;br /&gt;using Microsoft.Practices.Unity.InterceptionExtension&amp;#59;&lt;br /&gt;using Xunit&amp;#59;&lt;br /&gt;using Xunit.Extensions&amp;#59;&lt;br /&gt;&lt;br /&gt;namespace UnityTests&lt;br /&gt;&amp;#123;&lt;br /&gt;    public class CallHandlerLifetime&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#91;Theory&amp;#93;&lt;br /&gt;        &amp;#91;InlineData&amp;#40;true&amp;#41;&amp;#93;&lt;br /&gt;        &amp;#91;InlineData&amp;#40;false&amp;#41;&amp;#93;&lt;br /&gt;        public void UnityRespectsLifetimeManagerForCallhandler&amp;#40;bool useSingleton&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            TestHandler.ResetInstanceCount&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            using &amp;#40;IUnityContainer container &amp;#61; new UnityContainer&amp;#40;&amp;#41;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                if &amp;#40;useSingleton&amp;#41;&lt;br /&gt;                    container.RegisterType&amp;#60;TestHandler&amp;#62;&amp;#40;new ContainerControlledLifetimeManager&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                container.AddNewExtension&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&lt;br /&gt;                         .Configure&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&lt;br /&gt;                         .AddPolicy&amp;#40;&amp;#34;test&amp;#34;&amp;#41;&lt;br /&gt;                         .AddMatchingRule&amp;#40;new NamespaceMatchingRule&amp;#40;GetType&amp;#40;&amp;#41;.Namespace&amp;#41;&amp;#41;&lt;br /&gt;                         .AddCallHandler&amp;#60;TestHandler&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                container.RegisterType&amp;#40;typeof &amp;#40;IInterface&amp;#41;, typeof &amp;#40;Implementation&amp;#41;,&lt;br /&gt;                                       new Interceptor&amp;#60;InterfaceInterceptor&amp;#62;&amp;#40;&amp;#41;,&lt;br /&gt;                                       new InterceptionBehavior&amp;#60;PolicyInjectionBehavior&amp;#62;&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                Assert.Equal&amp;#40;0, TestHandler.InstanceCount&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                container.Resolve&amp;#60;IInterface&amp;#62;&amp;#40;&amp;#41;.Foo&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                &amp;#47;&amp;#47; interception will have needed to use a test handler&lt;br /&gt;                Assert.Equal&amp;#40;1, TestHandler.InstanceCount&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                &amp;#47;&amp;#47; 2nd resolve for test handler&lt;br /&gt;                container.Resolve&amp;#60;TestHandler&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                &amp;#47;&amp;#47; did we get singleton behavior as expected&amp;#63;&lt;br /&gt;                Assert.Equal&amp;#40;useSingleton &amp;#63; 1 &amp;#58; 2, TestHandler.InstanceCount&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public interface IInterface&lt;br /&gt;        &amp;#123;&lt;br /&gt;            void Foo&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        private class Implementation &amp;#58; IInterface&lt;br /&gt;        &amp;#123;&lt;br /&gt;            void IInterface.Foo&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        internal class TestHandler &amp;#58; ICallHandler&lt;br /&gt;        &amp;#123;&lt;br /&gt;            private static int NextId&amp;#59;&lt;br /&gt;            private readonly int id&amp;#59;&lt;br /&gt;&lt;br /&gt;            public TestHandler&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                id &amp;#61; Interlocked.Increment&amp;#40;ref NextId&amp;#41;&amp;#59;&lt;br /&gt;                Debug.WriteLine&amp;#40;string.Format&amp;#40;&amp;#34;Created instance &amp;#123;0&amp;#125;.&amp;#34;, id&amp;#41;, GetType&amp;#40;&amp;#41;.Name&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;            public static int InstanceCount&lt;br /&gt;            &amp;#123;&lt;br /&gt;                get &amp;#123; return NextId&amp;#59; &amp;#125;&lt;br /&gt;                private set &amp;#123; NextId &amp;#61; value&amp;#59; &amp;#125;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;            IMethodReturn ICallHandler.Invoke&amp;#40;IMethodInvocation input, GetNextHandlerDelegate getNext&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                return getNext&amp;#40;&amp;#41;&amp;#40;input, getNext&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;            public int Order &amp;#123; get&amp;#59; set&amp;#59; &amp;#125;&lt;br /&gt;&lt;br /&gt;            internal static void ResetInstanceCount&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                InstanceCount &amp;#61; 0&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;Comments: Yes indeed, sorry, I overlooked the overloads. I didn&amp;#39;t realize that the AddCallHandler call was overriding the first type registration for the call handler.</description><author>JochenZ</author><pubDate>Mon, 25 Feb 2013 21:33:13 GMT</pubDate><guid isPermaLink="false">Commented Issue: Unity does not respect lifetime manager for call handler [12726] 20130225093313P</guid></item><item><title>Commented Issue: Unity does not respect lifetime manager for call handler [12726]</title><link>http://unity.codeplex.com/workitem/12726</link><description>Even if a call handler &amp;#40;interception&amp;#41; is registered as a singleton, multiple instances are generated. This unit test demonstrates the behavior&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;using System.Diagnostics&amp;#59;&lt;br /&gt;using System.Threading&amp;#59;&lt;br /&gt;using Microsoft.Practices.Unity&amp;#59;&lt;br /&gt;using Microsoft.Practices.Unity.InterceptionExtension&amp;#59;&lt;br /&gt;using Xunit&amp;#59;&lt;br /&gt;using Xunit.Extensions&amp;#59;&lt;br /&gt;&lt;br /&gt;namespace UnityTests&lt;br /&gt;&amp;#123;&lt;br /&gt;    public class CallHandlerLifetime&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#91;Theory&amp;#93;&lt;br /&gt;        &amp;#91;InlineData&amp;#40;true&amp;#41;&amp;#93;&lt;br /&gt;        &amp;#91;InlineData&amp;#40;false&amp;#41;&amp;#93;&lt;br /&gt;        public void UnityRespectsLifetimeManagerForCallhandler&amp;#40;bool useSingleton&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            TestHandler.ResetInstanceCount&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            using &amp;#40;IUnityContainer container &amp;#61; new UnityContainer&amp;#40;&amp;#41;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                if &amp;#40;useSingleton&amp;#41;&lt;br /&gt;                    container.RegisterType&amp;#60;TestHandler&amp;#62;&amp;#40;new ContainerControlledLifetimeManager&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                container.AddNewExtension&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&lt;br /&gt;                         .Configure&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&lt;br /&gt;                         .AddPolicy&amp;#40;&amp;#34;test&amp;#34;&amp;#41;&lt;br /&gt;                         .AddMatchingRule&amp;#40;new NamespaceMatchingRule&amp;#40;GetType&amp;#40;&amp;#41;.Namespace&amp;#41;&amp;#41;&lt;br /&gt;                         .AddCallHandler&amp;#60;TestHandler&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                container.RegisterType&amp;#40;typeof &amp;#40;IInterface&amp;#41;, typeof &amp;#40;Implementation&amp;#41;,&lt;br /&gt;                                       new Interceptor&amp;#60;InterfaceInterceptor&amp;#62;&amp;#40;&amp;#41;,&lt;br /&gt;                                       new InterceptionBehavior&amp;#60;PolicyInjectionBehavior&amp;#62;&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                Assert.Equal&amp;#40;0, TestHandler.InstanceCount&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                container.Resolve&amp;#60;IInterface&amp;#62;&amp;#40;&amp;#41;.Foo&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                &amp;#47;&amp;#47; interception will have needed to use a test handler&lt;br /&gt;                Assert.Equal&amp;#40;1, TestHandler.InstanceCount&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                &amp;#47;&amp;#47; 2nd resolve for test handler&lt;br /&gt;                container.Resolve&amp;#60;TestHandler&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                &amp;#47;&amp;#47; did we get singleton behavior as expected&amp;#63;&lt;br /&gt;                Assert.Equal&amp;#40;useSingleton &amp;#63; 1 &amp;#58; 2, TestHandler.InstanceCount&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public interface IInterface&lt;br /&gt;        &amp;#123;&lt;br /&gt;            void Foo&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        private class Implementation &amp;#58; IInterface&lt;br /&gt;        &amp;#123;&lt;br /&gt;            void IInterface.Foo&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        internal class TestHandler &amp;#58; ICallHandler&lt;br /&gt;        &amp;#123;&lt;br /&gt;            private static int NextId&amp;#59;&lt;br /&gt;            private readonly int id&amp;#59;&lt;br /&gt;&lt;br /&gt;            public TestHandler&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                id &amp;#61; Interlocked.Increment&amp;#40;ref NextId&amp;#41;&amp;#59;&lt;br /&gt;                Debug.WriteLine&amp;#40;string.Format&amp;#40;&amp;#34;Created instance &amp;#123;0&amp;#125;.&amp;#34;, id&amp;#41;, GetType&amp;#40;&amp;#41;.Name&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;            public static int InstanceCount&lt;br /&gt;            &amp;#123;&lt;br /&gt;                get &amp;#123; return NextId&amp;#59; &amp;#125;&lt;br /&gt;                private set &amp;#123; NextId &amp;#61; value&amp;#59; &amp;#125;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;            IMethodReturn ICallHandler.Invoke&amp;#40;IMethodInvocation input, GetNextHandlerDelegate getNext&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                return getNext&amp;#40;&amp;#41;&amp;#40;input, getNext&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;            public int Order &amp;#123; get&amp;#59; set&amp;#59; &amp;#125;&lt;br /&gt;&lt;br /&gt;            internal static void ResetInstanceCount&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                InstanceCount &amp;#61; 0&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;Comments: I believe that when CallHandlers are registered they are registered as &amp;#60;ICallHandler, ConcreteCallHandler&amp;#62;.  So under the covers registering TestHandler is different from calling AddCallHandler&amp;#60;TestHandler&amp;#62;.  &amp;#10;&amp;#10;Also, when calling AddCallHandler a LifetimeManager can be supplied.  Since in the example no LifetimeManager was supplied the TestCallHandler &amp;#40;as ICallHandler&amp;#41; gets registered with a TransientLifetimeManager.&amp;#10;&amp;#10;Now usually, one does not want to directly resolve their CallHandler so simply registering the CallHandler with a ContainerControlledLifetimeManager is sufficient&amp;#58;&amp;#10;&amp;#10;&amp;#96;&amp;#96;&amp;#96;&amp;#10;container.AddNewExtension&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&amp;#10;                .Configure&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&amp;#10;                .AddPolicy&amp;#40;&amp;#34;test&amp;#34;&amp;#41;&amp;#10;                .AddMatchingRule&amp;#40;new NamespaceMatchingRule&amp;#40;typeof&amp;#40;Program&amp;#41;.Namespace&amp;#41;&amp;#41;&amp;#10;                .AddCallHandler&amp;#60;TestHandler&amp;#62;&amp;#40;new ContainerControlledLifetimeManager&amp;#40;&amp;#41;&amp;#41;&amp;#59;&amp;#10;&amp;#10;&amp;#96;&amp;#96;&amp;#96;&amp;#10;If you did want TestHandler to be a true singleton then there are a variety ways of doing that.  One way is to directly register the TestHandler singleton instance in AddCallHandler&amp;#58;&amp;#10;&amp;#10;&amp;#96;&amp;#96;&amp;#96;&amp;#10;container.RegisterType&amp;#60;TestHandler&amp;#62;&amp;#40;new ContainerControlledLifetimeManager&amp;#40;&amp;#41;&amp;#41;&amp;#59;&amp;#10;&amp;#10;container.AddNewExtension&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&amp;#10;                .Configure&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&amp;#10;                .AddPolicy&amp;#40;&amp;#34;test&amp;#34;&amp;#41;&amp;#10;                .AddMatchingRule&amp;#40;new NamespaceMatchingRule&amp;#40;typeof&amp;#40;Program&amp;#41;.Namespace&amp;#41;&amp;#41;&amp;#10;                .AddCallHandler&amp;#40;container.Resolve&amp;#60;TestHandler&amp;#62;&amp;#40;&amp;#41;&amp;#41;&amp;#59;&amp;#10;&amp;#96;&amp;#96;&amp;#96;&amp;#10;Another way would be to register and resolve TestHandler by name and specify the name in the AddCallHandler call&amp;#58;&amp;#10;&amp;#10;&amp;#96;&amp;#96;&amp;#96;&amp;#10;container.RegisterType&amp;#60;TestHandler&amp;#62;&amp;#40;typeof&amp;#40;TestHandler&amp;#41;.Name, new ContainerControlledLifetimeManager&amp;#40;&amp;#41;&amp;#41;&amp;#59;&amp;#10;            &amp;#10;container.AddNewExtension&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&amp;#10;                .Configure&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&amp;#10;                .AddPolicy&amp;#40;&amp;#34;test&amp;#34;&amp;#41;&amp;#10;                .AddMatchingRule&amp;#40;new NamespaceMatchingRule&amp;#40;typeof&amp;#40;Program&amp;#41;.Namespace&amp;#41;&amp;#41;&amp;#10;                .AddCallHandler&amp;#60;TestHandler&amp;#62;&amp;#40;typeof&amp;#40;TestHandler&amp;#41;.Name&amp;#41;&amp;#59;&amp;#10;&amp;#10;var testHandler1 &amp;#61; container.Resolve&amp;#60;ICallHandler&amp;#62;&amp;#40;typeof&amp;#40;TestHandler&amp;#41;.Name&amp;#41;&amp;#59;&amp;#10;var testHandler2 &amp;#61; container.Resolve&amp;#60;TestHandler&amp;#62;&amp;#40;typeof&amp;#40;TestHandler&amp;#41;.Name&amp;#41;&amp;#59;&amp;#10;&amp;#96;&amp;#96;&amp;#96;&amp;#10;Note, however, if you attempted to resolve TestHandler without a name then you would receive a new instance.  But that is always true when resolving concrete types by name.&amp;#10;&amp;#10;&amp;#10;&amp;#126;&amp;#126;&amp;#10;Randy Levy&amp;#10;&amp;#91;entlib.support&amp;#64;live.com&amp;#93;&amp;#40;mailto&amp;#58;entlib.support&amp;#64;live.com&amp;#41;&amp;#10;Enterprise Library support engineer&amp;#10;&amp;#91;Support How-to&amp;#93;&amp;#40;entlib.codeplex.com&amp;#47;wikipage&amp;#63;title&amp;#61;Support&amp;#37;20How-to&amp;#41; </description><author>randylevy</author><pubDate>Mon, 25 Feb 2013 18:12:55 GMT</pubDate><guid isPermaLink="false">Commented Issue: Unity does not respect lifetime manager for call handler [12726] 20130225061255P</guid></item><item><title>Created Issue: Unity does not respect lifetime manager for call handler [12726]</title><link>http://unity.codeplex.com/workitem/12726</link><description>Even if a call handler &amp;#40;interception&amp;#41; is registered as a singleton, multiple instances are generated. This unit test demonstrates the behavior&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;using System.Diagnostics&amp;#59;&lt;br /&gt;using System.Threading&amp;#59;&lt;br /&gt;using Microsoft.Practices.Unity&amp;#59;&lt;br /&gt;using Microsoft.Practices.Unity.InterceptionExtension&amp;#59;&lt;br /&gt;using Xunit&amp;#59;&lt;br /&gt;using Xunit.Extensions&amp;#59;&lt;br /&gt;&lt;br /&gt;namespace UnityTests&lt;br /&gt;&amp;#123;&lt;br /&gt;    public class CallHandlerLifetime&lt;br /&gt;    &amp;#123;&lt;br /&gt;        &amp;#91;Theory&amp;#93;&lt;br /&gt;        &amp;#91;InlineData&amp;#40;true&amp;#41;&amp;#93;&lt;br /&gt;        &amp;#91;InlineData&amp;#40;false&amp;#41;&amp;#93;&lt;br /&gt;        public void UnityRespectsLifetimeManagerForCallhandler&amp;#40;bool useSingleton&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            TestHandler.ResetInstanceCount&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;            using &amp;#40;IUnityContainer container &amp;#61; new UnityContainer&amp;#40;&amp;#41;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                if &amp;#40;useSingleton&amp;#41;&lt;br /&gt;                    container.RegisterType&amp;#60;TestHandler&amp;#62;&amp;#40;new ContainerControlledLifetimeManager&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                container.AddNewExtension&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&lt;br /&gt;                         .Configure&amp;#60;Interception&amp;#62;&amp;#40;&amp;#41;&lt;br /&gt;                         .AddPolicy&amp;#40;&amp;#34;test&amp;#34;&amp;#41;&lt;br /&gt;                         .AddMatchingRule&amp;#40;new NamespaceMatchingRule&amp;#40;GetType&amp;#40;&amp;#41;.Namespace&amp;#41;&amp;#41;&lt;br /&gt;                         .AddCallHandler&amp;#60;TestHandler&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                container.RegisterType&amp;#40;typeof &amp;#40;IInterface&amp;#41;, typeof &amp;#40;Implementation&amp;#41;,&lt;br /&gt;                                       new Interceptor&amp;#60;InterfaceInterceptor&amp;#62;&amp;#40;&amp;#41;,&lt;br /&gt;                                       new InterceptionBehavior&amp;#60;PolicyInjectionBehavior&amp;#62;&amp;#40;&amp;#41;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                Assert.Equal&amp;#40;0, TestHandler.InstanceCount&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                container.Resolve&amp;#60;IInterface&amp;#62;&amp;#40;&amp;#41;.Foo&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                &amp;#47;&amp;#47; interception will have needed to use a test handler&lt;br /&gt;                Assert.Equal&amp;#40;1, TestHandler.InstanceCount&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                &amp;#47;&amp;#47; 2nd resolve for test handler&lt;br /&gt;                container.Resolve&amp;#60;TestHandler&amp;#62;&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;&lt;br /&gt;                &amp;#47;&amp;#47; did we get singleton behavior as expected&amp;#63;&lt;br /&gt;                Assert.Equal&amp;#40;useSingleton &amp;#63; 1 &amp;#58; 2, TestHandler.InstanceCount&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        public interface IInterface&lt;br /&gt;        &amp;#123;&lt;br /&gt;            void Foo&amp;#40;&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        private class Implementation &amp;#58; IInterface&lt;br /&gt;        &amp;#123;&lt;br /&gt;            void IInterface.Foo&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;        internal class TestHandler &amp;#58; ICallHandler&lt;br /&gt;        &amp;#123;&lt;br /&gt;            private static int NextId&amp;#59;&lt;br /&gt;            private readonly int id&amp;#59;&lt;br /&gt;&lt;br /&gt;            public TestHandler&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                id &amp;#61; Interlocked.Increment&amp;#40;ref NextId&amp;#41;&amp;#59;&lt;br /&gt;                Debug.WriteLine&amp;#40;string.Format&amp;#40;&amp;#34;Created instance &amp;#123;0&amp;#125;.&amp;#34;, id&amp;#41;, GetType&amp;#40;&amp;#41;.Name&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;            public static int InstanceCount&lt;br /&gt;            &amp;#123;&lt;br /&gt;                get &amp;#123; return NextId&amp;#59; &amp;#125;&lt;br /&gt;                private set &amp;#123; NextId &amp;#61; value&amp;#59; &amp;#125;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;            IMethodReturn ICallHandler.Invoke&amp;#40;IMethodInvocation input, GetNextHandlerDelegate getNext&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                return getNext&amp;#40;&amp;#41;&amp;#40;input, getNext&amp;#41;&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;&lt;br /&gt;            public int Order &amp;#123; get&amp;#59; set&amp;#59; &amp;#125;&lt;br /&gt;&lt;br /&gt;            internal static void ResetInstanceCount&amp;#40;&amp;#41;&lt;br /&gt;            &amp;#123;&lt;br /&gt;                InstanceCount &amp;#61; 0&amp;#59;&lt;br /&gt;            &amp;#125;&lt;br /&gt;        &amp;#125;&lt;br /&gt;    &amp;#125;&lt;br /&gt;&amp;#125;&lt;br /&gt;&amp;#96;&amp;#96;&amp;#96;&lt;br /&gt;</description><author>JochenZ</author><pubDate>Mon, 25 Feb 2013 15:44:09 GMT</pubDate><guid isPermaLink="false">Created Issue: Unity does not respect lifetime manager for call handler [12726] 20130225034409P</guid></item></channel></rss>