ASP.NET 5非控制器DI注入

时间:2016-01-05 18:06:13

标签: asp.net-core

我正在尝试使用新的ASP.NET 5依赖注入系统,但它似乎仅限于从Controller继承的类的仅构造函数。

还有其他方法可以注射东西吗?属性?什么?这是如此严重的限制,让我在几天内进行了砖砌。

2 个答案:

答案 0 :(得分:1)

刚刚测试了这个(RC1 Update1),它也适用于其他类。 我写了一个小例子,首先是类型声明:

public interface IBaseServiceType { }

public interface IComposedServiceType
{
    IBaseServiceType baseService { get; }
}

public class BaseServiceImplementation : IBaseServiceType { }

public class ComposedServiceImplementation : IComposedServiceType
{
    public IBaseServiceType baseService { private set; get; }

    public ComposedServiceImplementation(IBaseServiceType baseService)
    {
        this.baseService = baseService;
    }
}

配置:

        services.AddTransient(typeof(IBaseServiceType), typeof(BaseServiceImplementation));
        services.AddTransient(typeof(IComposedServiceType), typeof(ComposedServiceImplementation));

并创建这样的实例,其中context是您的HttpContext

 var composedServiceInstance = context.ApplicationServices.GetService<IComposedServiceType>();

答案 1 :(得分:0)

将您的课程注册为服务,并像对待所有其他服务一样对待

Net Core Dependency Injection for Non-Controller

相关问题