Unity静态工厂扩展

时间:2010-10-04 18:58:25

标签: unity-container ioc-container

我似乎无法在任何地方找到Microsoft.Practices.Unity.StaticFactory.dll。

是否有另一种注册静态工厂的方法?

寻找类似的东西

container.RegisterFactory(()=> FooFactory.CreateFoo());

2 个答案:

答案 0 :(得分:14)

StaticFactory.dll作为Unity 2.0的一部分进入主程序集。它通常很有用,我们不想强迫人们携带一个单独的DLL来获取它。

因此,您仍然可以使用现有的API,您只需添加程序集引用即可。但是,我们已弃用旧API。可以添加扩展名,但不执行任何操作,它已包含在容器中。现在,您可以通过以下方式在容器中注册工厂:

  container.RegisterType<IFoo, Foo>(new InjectionFactory(c => new Foo());

其中c是解析实例的容器。还可以选择传递要解析的类型和名称。

我们弃用旧的API,因为它使用起来非常笨拙,而且它不再是扩展。

答案 1 :(得分:0)

RegisterFactory方法是StaticFactoryExtension类的一部分,已弃用,因为您可以看到here

如果您正在寻找工厂扩展程序,this thread应该会有帮助。

我希望这会有所帮助。

谢谢, 达米安