使用StructureMap在2个程序集中添加注册表

时间:2011-12-03 20:25:10

标签: asp.net-mvc-3 structuremap

在我的ASP.NET MVC项目中,我有2个项目 - UI和Core。我在我的Core项目中设置了StructureMap,如下所示:

ObjectFactory.Initialize(cfg => cfg.Scan(scanner =>
{
    scanner.TheCallingAssembly();
    scanner.LookForRegistries();
}));

我设置了一个注册表,允许我在我的存储库中使用IoC:

public class CoreRegistry : Registry
{
    public CoreRegistry()
    {
        Scan(cfg =>
        {
            cfg.TheCallingAssembly();
            cfg.WithDefaultConventions();
        });
    }
}

我在global.asax中初始化它。所有这些配置都是Core中的黑盒子,一切都很好。

但是,现在我想在我的UI项目中使用StructureMap for IoC。在配置完成后,是否可以在配置中添加更多内容?我不想解开一切让我的UI元素注册。

1 个答案:

答案 0 :(得分:0)

您可以使用相同的策略来注册ui对象。您可以将UI程序集的引用发送到`在Core dll中查找注册表的方法。并扫描UI程序集以注册:

ObjectFactory.Initialize(cfg => cfg.Scan(scanner =>
{
    scanner.TheCallingAssembly();
    scanner.Assembly(assembly);
    scanner.LookForRegistries();
}));

并且您可以像往常一样在UI项目中声明注册表。您还可以随时添加任意数量的注册表。