如何使用Windsor Castle注册System.Net.CookieContainer?

时间:2011-08-22 14:26:14

标签: c# .net exception-handling dependency-injection castle-windsor

我有一个组件,其中我依赖于CookieContaier对象。 我设法通过这段代码完成了这项工作:

ICookieContainerFactory factory = container.Resolve<ICookieContainerFactory>();
container.AddFacility<FactorySupportFacility>()
         .Register(Component.For<System.Net.CookieContainer>()
         .UsingFactoryMethod(() => factory.GetCookieContainer())
         .LifeStyle.Singleton);

但我希望在配置文件中包含这些内容。 我该如何在配置中写这个?

我试过这种方式:

<component id="CookieContainerFactory"
               service="ABZ.RFOA.Core.Utility.ICookieContainerFactory, ABZ.RFOA.Core"
               type="ABZ.RFOA.Core.Utility.CookieContainerFactory, ABZ.RFOA.Core">
</component>
<component id="CookieContainer"
           type="System.Net.CookieContainer, System"
           factoryId="CookieContainerFactory"
           factoryCreate="GetCookieContainer"
           lifestyle="singleton"> 
</component>

但它让我异常:

  

Castle.MicroKernel.SubSystems.Conversion.ConverterException:无法从'System.Net.CookieContainer,System'转换为System.Type - 可能无法找到类型

我不明白System.Type在这里做了什么。我该怎么解决这个问题?

1 个答案:

答案 0 :(得分:2)

尝试使用程序集限定名称

System.Net.CookieContainer, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089

而不只是System.Net.CookieContainer, System