【发布时间】:2011-04-20 23:17:53
【问题描述】:
我似乎在任何地方都找不到 Microsoft.Practices.Unity.StaticFactory.dll。
还有其他注册静态工厂的方法吗?
寻找这样的东西
container.RegisterFactory(()=> FooFactory.CreateFoo());
【问题讨论】:
标签: unity-container ioc-container
我似乎在任何地方都找不到 Microsoft.Practices.Unity.StaticFactory.dll。
还有其他注册静态工厂的方法吗?
寻找这样的东西
container.RegisterFactory(()=> FooFactory.CreateFoo());
【问题讨论】:
标签: unity-container ioc-container
StaticFactory.dll 作为 Unity 2.0 的一部分被整合到主程序集中。它通常很有用,我们不想强迫人们携带一个单独的 DLL 来获取它。
因此,您仍然可以使用现有的 API,只是不需要添加程序集引用。但是,我们已弃用旧 API。可以添加扩展,但什么也不做,它已经包含在容器中。您现在可以通过以下方式在容器中注册工厂:
container.RegisterType<IFoo, Foo>(new InjectionFactory(c => new Foo());
其中 c 是解析实例的容器。还有一个选项可以传入要解析的类型和名称。
我们弃用了旧 API,因为它使用起来非常尴尬,而且它不再是扩展。
【讨论】:
RegisterFactory 方法是 StaticFactoryExtension 类的一部分,如您所见 here 已弃用。
如果您正在寻找工厂扩展,this thread 应该会有所帮助。
我希望这会有所帮助。
谢谢, 达米安
【讨论】: