我似乎找不到 Microsoft.Practices.Unity.StaticFactory.dll 这个文件。
是否有其他注册静态工厂的方法?
寻找像这样的东西
container.RegisterFactory(()=> FooFactory.CreateFoo());
我似乎找不到 Microsoft.Practices.Unity.StaticFactory.dll 这个文件。
是否有其他注册静态工厂的方法?
寻找像这样的东西
container.RegisterFactory(()=> FooFactory.CreateFoo());
StaticFactory.dll已经作为Unity 2.0的一部分合并到主程序集中。它通常非常有用,我们不想强迫用户携带一个单独的DLL文件只为获得它。
因此,您仍然可以使用现有的API,只是不需要添加程序集引用。但是,我们已经弃用了旧的API。该扩展可以添加,但不起任何作用,因为它已包含在容器中。现在,您可以通过以下方式在容器中注册工厂:
container.RegisterType<IFoo, Foo>(new InjectionFactory(c => new Foo());
其中c是解析实例的容器。同时还有一个选项可以传递正在解析的类型和名称。
我们弃用了旧的API,因为它使用起来非常笨拙,并且它也不再是扩展了。
RegisterFactory 方法是 StaticFactoryExtension 类的一部分,该类已被弃用,您可以在 这里 看到。
如果您正在寻找工厂扩展,这个帖子 应该会有所帮助。
希望这能帮到您。
谢谢, Damian