结构图配置文件和添加实例

时间:2010-10-15 16:41:30

标签: c# .net structuremap

结构图(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

1 个答案:

答案 0 :(得分:0)

该语法应该有效,虽然不推荐使用,但这是当前的语法:

Profile("Profile1", p => p.For<IManyType>().Use<ManyType1>()

然后当然你必须切换到这样的配置文件:

container.SetDefaultsToProfile("Profile1");