【问题标题】:Unity Static Factory ExtensionUnity 静态工厂扩展
【发布时间】:2011-04-20 23:17:53
【问题描述】:

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

还有其他注册静态工厂的方法吗?

寻找这样的东西

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

【问题讨论】:

    标签: unity-container ioc-container


    【解决方案1】:

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

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

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

    其中 c 是解析实例的容器。还有一个选项可以传入要解析的类型和名称。

    我们弃用了旧 API,因为它使用起来非常尴尬,而且它不再是扩展。

    【讨论】:

      【解决方案2】:

      RegisterFactory 方法是 StaticFactoryExtension 类的一部分,如您所见 here 已弃用。

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

      我希望这会有所帮助。

      谢谢, 达米安

      【讨论】:

      • 正如我提供的链接中所说:[ObsoleteAttribute("Use RegisterType(new InjectionFactory(...)) 而不是扩展的方法。")]
      猜你喜欢
      • 2010-12-27
      • 1970-01-01
      • 2010-11-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多