【发布时间】:2016-06-23 08:59:25
【问题描述】:
我在另一个程序集中有一个 IDbContext 接口,在另一个程序集中有一个服务堆栈,基础服务类有一个 IDbContext 属性,其他服务确实使用它的属性。
为了使事情变得简单,我省略了基本服务类,即使在这个场景中它也不起作用。 这是 IDbContext :
public interface IDbContext
{
}
然后我有一个实现 IDbContext 的 DBContext 类。 在另一个程序集中,我们有这个具有 IDContext 属性的类:
public class StudyFieldService : IStudyFieldService{
private readonly IDbSet<StudyField> _studyFields;
public IDbContext DbContext { get; set; }
public StudyFieldService(IDbContext db)
{
_studyFields = DbContext.Set<StudyField>();
}
}
然后我有 Autofac 注册表类,它将类映射到接口,并且注册表类也在另一个程序集中 这是映射类型的方法的主体:
var builder = new ContainerBuilder();
builder.RegisterType<SalaryDbContext>().As<IDbContext>().InstancePerLifetimeScope();
builder.RegisterType<StudyFieldService>().As<IStudyFieldService>().PropertiesAutowired();
现在,如果我将 IDbContext 放入构造函数参数 Autofac 会解决它,但我希望它作为属性自动注入。
【问题讨论】:
-
你有异常吗?还是财产的价值
null? -
属性值为空
-
我刚刚测试了它,它工作正常。您是否错过了提供的东西?
标签: c# entity-framework dependency-injection inversion-of-control autofac