Unity静态工厂扩展

7

我似乎找不到 Microsoft.Practices.Unity.StaticFactory.dll 这个文件。

是否有其他注册静态工厂的方法?

寻找像这样的东西

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

2个回答

14

StaticFactory.dll已经作为Unity 2.0的一部分合并到主程序集中。它通常非常有用,我们不想强迫用户携带一个单独的DLL文件只为获得它。

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

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

其中c是解析实例的容器。同时还有一个选项可以传递正在解析的类型和名称。

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


0

正如我提供的链接所述:“[ObsoleteAttribute(“使用RegisterType <TInterface,TImpl>(new InjectionFactory(...))代替扩展方法。”] - Damian Schenkelman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接