Tag: unity2.0

在WPF中使用Unity

我让Unity 2.0在App.xaml.cs中运行良好,可以在该类中注册和解析。 我的问题是关于最佳做法。 我有许多用户控件和其他类,还需要解决一些相同和新的接口实现。 问题是无法访问我在App.xaml.cs中创建的Unity容器。 我不能使用构造函数或属性注入来传递容器引用。 太多了(这是一个大项目) 用户控件通过xaml添加 项目中有几个非常松散相关的“模块”可以共享相同的容器配置。 我宁愿不在每个需要访问容器的对象的配置文件中重新创建容器。 在同一组件的各种“模块”中需要同一个容器作为服务时,是否有任何最佳实践建议? 谢谢。

Unity – 如何将多个映射用于相同类型并注入对象

我正在使用Unity 2.0,在下面的代码中我试图在Worker对象中注入一个特定的工具。 我想使用以下代码。 但是当然有一个错误“依赖的解决方案失败了”。 我相信我应该可以做这样的事情,但我很难搞清楚。 IUnityContainer container = new UnityContainer(); container.RegisterType(“Worker”) .RegisterType(“ToolA”) .RegisterType(“ToolB”) .RegisterType(“ToolC”); IWorker worker = container.Resolve(“ToolA”); 我知道这不起作用,但我该如何解决这个问题呢? BarDev

Unity的自定义对象工厂扩展

我正在使用Unity IoC容器,我需要拦截对Resolve的任何调用以获取某个基本接口,并运行我自己的自定义代码来构造这些类型。 换句话说,在下面的示例代码中,当我调用container.Resolve() ,如果它没有具体实现类型的实例,则调用MyFactoryFunction来构造一个,否则我希望它返回缓存副本。 标准Unity容器无法构造这些对象( 更新:因为它们是.NET远程处理对象,因此本地计算机上的任何程序集中都不存在具体类),我不想在前面创建它们使用RegisterInstance存储它们。 interface IFoo : IBase { … } interface IFoo2 : IBase { … } … container.Resolve(); … IBase MyFactoryFunction(Type t) { … } 我假设我可以创建一个Unity扩展来执行此操作,但我想知道是否已经有一个解决方案我可以借用。

Unity Application Block,如何将参数传递给Injection Factory?

这就是我现在所拥有的 Container.RegisterType(); Container.RegisterType( new InjectionFactory( (c) => c.Resolve().GetUser(“John”))); 得到它 Container.Resolve(); 我想将一个名称作为参数传递给Factory,以便我能够用名称解析用户对象; 像这样的东西: Container.Resolve(“Jonh”); 如何更改此案例的类型注册?