Dependency injection MVC5中的结构映射

Dependency injection MVC5中的结构映射,dependency-injection,structuremap,objectfactory,Dependency Injection,Structuremap,Objectfactory,我正在MVC5中使用structuremap 3.1.2.138。 在我的IoC类中,我试图使用Objectfactory,但它指出Objectfactory已经过时,我应该使用容器,但我找不到一种方法来实现这一点 public static IContainer Initialize() { var BS_WebDataContextConnectionString = "Data Source=xxx;Initial Catalog=xxx;Integrated Securi

我正在MVC5中使用structuremap 3.1.2.138。 在我的IoC类中,我试图使用Objectfactory,但它指出Objectfactory已经过时,我应该使用容器,但我找不到一种方法来实现这一点

public static IContainer Initialize() {
        var BS_WebDataContextConnectionString = "Data Source=xxx;Initial Catalog=xxx;Integrated Security=True;MultipleActiveResultSets=True";

        ObjectFactory.Initialize(x =>
            {
                x.Scan(scan =>
                    {
                        scan.Assembly(Assembly.GetCallingAssembly());
                        scan.WithDefaultConventions();
                    });

                //DataContext
                x.For<iBS_WebDataContext>().Use<BS_WebDataContext>()
                    .Ctor<string>("connectionString")
                    .Is(BS_WebDataContextConnectionString);

                //Repositories
                x.For<IReadOnlyEvidenceTypeRepository>().Use<EF6ReadOnlyEvidenceTypeRepository>();
                x.For<IReadOnlyStatusCategoryRepository>().Use<EF6ReadOnlyStatusCategoryRepository>();



                //Services
                x.For<IEvidenceTypeService>().Use<EvidenceTypeService>();
                x.For<IStatusCategoryService>().Use<StatusCategoryService>();


            });
        return ObjectFactory.Container;
}


有谁能给我一个例子,如何将其转换为容器方式吗?

可以这样做,包括将您的配置移动到注册表中,以保持其整洁

WebsiteRegistry.cs

然后像这样注册:

IContainer yourContainer = new Container();
yourContainer.Configure(c =>
{
    c.IncludeRegistry<WebsiteRegistry>();
});

谢谢JoeMighty。工作起来很有魅力!我只需要省略x。因为注册表继承没有问题,很高兴我能帮上忙!
IContainer yourContainer = new Container();
yourContainer.Configure(c =>
{
    c.IncludeRegistry<WebsiteRegistry>();
});