我有一个班级
public class Broker
{
public Broker(string[] hosts, string endPoint, string port, Type remoteType)
{
}
}
我想使用Unity XML Configuration配置,我可以使用C#中的代码配置它,如下所示,其中“container”是我的Unity容器
container.Configure<InjectedMembers>()
.ConfigureInjectionFor<Broker>("myBroker",
new InjectionConstructor(hosts, endPoint, port, new InjectionParameter(typeof(IMyBrokeredObject))));
它将很乐意使用正常的统一调用解决
container.Resolve( “MYBROKER”);
但是目前我的xml无法解析最终参数IMyBrokeredObject,我得到了一个解决方案异常,因为Unity试图解决只是注入类型的类型,就像在上面的代码中那样。
任何想法?
答案 0 :(得分:1)
您是否在配置文件中定义了类型:
<unity>
<typeAliases>
<typeAlias alias="IMyBrokeredObject" type="MyAssembly.IMyBrokeredObject, MyAssembly" />
</typeAliases>
<containers>
<container>
<types>
<!-- Views -->
<type type="IMyBrokeredObject" mapTo="MyAssembly.MyBrokeredObjectImplementation, MyAssembly" />
答案 1 :(得分:0)
但我的问题是没有可用于IMyBrokeredObject的实现,在后台实际发生的是代理提供了给定接口的远程对象,实际的实现在其他地方。
在代码中,我可以通过提供“InjectionParameter”来获取容器以提供代理,我无法在xml配置中找到如何执行此操作。
它很棘手,因为我不希望容器给出接口的实例但实际上按原样传递接口,“InjectionParameter”是一个值的存储,当存储的对象创建时,存储的值被传递容器,按原样。我正在寻找的是创建InjectionParameter所需的配置xml并为其提供值(如果可能的话)?