对于下面的代码,我将如何根据名称解析?IoC StructureMap解析命名实例
public interface IService
{}
public class ServiceA : IService
{}
public class ServiceB : IService
{}
public class ClassA
{
public IService service { get; set; }
public ClassA(IService service)
{
this.service = service;
}
}
public class ClassB
{
public IService service { get; set; }
public ClassB(IService service)
{
this.service = service;
}
}
注册表:
public class MyRegistry : Registry
{
public MyRegistry()
{
For<IService>().Add<ServiceA>().Ctor<IService>().Is(i => i.GetInstance<IService>("ServiceA")); // error
}
}
用法:
container = new Container(new MyRegistry());
var test = container.GetInstance<ClassA>();
问题:
- 对于ClassA的 IService =>应产量ServiceA
对于ClassB的 IService =>应该产生ServiceB
此外,有没有使用属性在构造函数中指定特定类型的具体实现的方法吗? (所以它没有在配置中指定?)