结构图(2.6)。
我有一些类和注册表如下所示:
public interface IManyType {}
public class ManyType1 : IManyType {}
public class ManyType2 : IManyType {}
public class ManyType3 : IManyType {}
public class TestRegistry : Registry
{
public TestRegistry()
{
For<IManyType>().Add<ManyType1>();
For<IManyType>().Add<ManyType2>();
Profile("Profile1").For<IManyType>().Use<ManyType1>();
Profile("Profile1").For<IManyType>().Use<ManyType2>();
Profile("Profile1").For<IManyType>().Use<ManyType3>();
}
}
我发现无论我是否在ObjectFactory上设置了配置文件,SM都将返回所有三个实例。 如果不清楚的话,我所追求的是使用配置文件为给定类型注册一组不同的实例。
我做错了吗?
-Joe
答案 0 :(得分:0)
该语法应该有效,虽然不推荐使用,但这是当前的语法:
Profile("Profile1", p => p.For<IManyType>().Use<ManyType1>()
然后当然你必须切换到这样的配置文件:
container.SetDefaultsToProfile("Profile1");