Asp.net core 如何将structuremap容器配置添加到Web Api启动文件

Asp.net core 如何将structuremap容器配置添加到Web Api启动文件,asp.net-core,asp.net-core-webapi,Asp.net Core,Asp.net Core Webapi,我已经设置了一个StructureMap容器(在单独的项目中),如下所示: 如何简单地将相同的配置注入WebAPI?您可以尝试以下方法: public IServiceProvider ConfigureServices(IServiceCollection services) { services.AddMvc(); //Create StructureMap container var co

我已经设置了一个StructureMap容器(在单独的项目中),如下所示:

如何简单地将相同的配置注入WebAPI?

您可以尝试以下方法:

 public IServiceProvider ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();                      
        //Create StructureMap container
        var container = new Container(); //This is Structuremap's container class, not your custom class
        container.Configure(config =>
        {
            //Add in your custom structuremap registry
            config.AddRegistry(new Container());
            //Push the .net Core Services Collection into StructureMap
            config.Populate(services);
        });
        //Register dependencies
        services.ConfigureDependencies();
        //Return the service provider
        return container.GetInstance<IServiceProvider>();
    }
您可以尝试以下方法:

 public IServiceProvider ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();                      
        //Create StructureMap container
        var container = new Container(); //This is Structuremap's container class, not your custom class
        container.Configure(config =>
        {
            //Add in your custom structuremap registry
            config.AddRegistry(new Container());
            //Push the .net Core Services Collection into StructureMap
            config.Populate(services);
        });
        //Register dependencies
        services.ConfigureDependencies();
        //Return the service provider
        return container.GetInstance<IServiceProvider>();
    }

是的。这里和那里都有一点变化,但它起作用了。谢谢你。这里和那里都有一点变化,但它起作用了。谢谢
 public IServiceProvider ConfigureServices(IServiceCollection services)
    {
        services.AddMvc();                      
        //Create StructureMap container
        var container = new Container(); //This is Structuremap's container class, not your custom class
        container.Configure(config =>
        {
            //Add in your custom structuremap registry
            config.AddRegistry(new Container());
            //Push the .net Core Services Collection into StructureMap
            config.Populate(services);
        });
        //Register dependencies
        services.ConfigureDependencies();
        //Return the service provider
        return container.GetInstance<IServiceProvider>();
    }
public class Container: Registry
    {
        public Container()
        {               
           c.For<ILogger>().Use<Logger>();
           c.For<IReminderService>().Use<ReminderService>();
           //More mappings
        }
    }