Configuration 结构映射注入仅适用于ApplicationController:IController,而不适用于类

Configuration 结构映射注入仅适用于ApplicationController:IController,而不适用于类,configuration,structuremap,setter,code-injection,Configuration,Structuremap,Setter,Code Injection,我的项目ServiceLayer.Intefaces的StructureMap注入问题 MyProject UI 1.MVC5网络应用程序 服务层 1.接口 2.服务 数据层 1.站点上下文 2.配置(迁移) 域类 1.型号 在UI中-MVC5: 从Nuget安装:StructureMap.MVC5 在这样使用时,所有这些都可以工作: public class HomeController : Controller { public IPaymentService PaymentServ

我的项目ServiceLayer.Intefaces的StructureMap注入问题

MyProject

UI
1.MVC5网络应用程序

服务层
1.接口
2.服务

数据层
1.站点上下文
2.配置(迁移)

域类
1.型号

在UI中-MVC5:
从Nuget安装:StructureMap.MVC5

在这样使用时,所有这些都可以工作:

public class HomeController : Controller
{
    public IPaymentService PaymentService { get; set; }
    public IIdentityManagerService IdentityManagerService { get; set; }
    public IApplicationGroupService ApplicationGroupService { get; set; }
    public IApplicationUserService ApplicationUserService { get; set; }
    public IUnitOfWork _UoW { get; set; }}
但不能在控制器外工作,如下所示:

public class CustomStartup
{
    public IIdentityManagerService IdentityManagerService { get; set; }
    public IApplicationGroupService ApplicationGroupService { get; set; }
    public IApplicationUserService ApplicationUserService { get; set; }
}
我的项目结构图配置:

见此:

当从CustomStratup使用注入时,会出现以下错误:

未注册任何默认实例,并且无法自动确定“ServiceLayer.Interfaces.IIdentityManagerService”类型的默认实例 没有为ServiceLayer.Interfaces.IIdentialManager服务指定配置 1.)Container.GetInstance(ServiceLayer.Interfaces.iIdentityManager服务)


请帮我解决这个问题

我也有同样的问题。情况有点奇怪。您可以尝试清楚地定义属性。这对我很有用:

public class CustomStartup
{
    public IIdentityManagerService IdentityManagerService 
    { 
        get 
        {
            return StructuremapMvc.StructureMapDependencyScope.Container.GetInstance<IIdentityManagerService>();
        } 
    }
}
公共类自定义启动
{
公共II身份管理服务标识管理服务
{ 
收到
{
返回StructuremapMvc.StructureMapDependencyScope.Container.GetInstance();
} 
}
}
当我在寻找更优雅的解决方案时:)