Azure Web 角色中后台线程的结构图构造函数注入
本文关键字:结构图 构造函数 注入 线程 后台 Web 角色 Azure | 更新日期: 2023-09-27 18:31:20
我有一个后台线程在Windows Azure Web角色中定期运行:
enquiries = new Enquiry();
Thread enqThread = new Thread(enquiries.Start);
enqThread.Start();
查询使用实体框架 5.0 DbContext 从数据库中提取查询记录。我想使用 Structuremap 在其构造函数中注入 DbContext。我正在这样做,
public class Enquiry {
private readonly IMySiteDb _db;
public Enquiry(IMySiteDb db)
{
_db = db;
}
/*
Then some methods like Init(), Start(), Execute() etc.
*/
}
我已经安装并初始化了 structuremap.mvc 对象工厂容器:
x.For<IMySiteDb>().HttpContextScoped().Use<MySiteDb>();
但是启动查询 = 新的 Query(); 抛出错误 - 查询不包含接受 0 个参数的构造函数。
我对依赖注入很陌生,找不到这种情况是如何工作的。此 DI 非常适合控制器。知道如何为后台线程执行此操作吗?
您需要从容器中获取对象,而不是通过自己调用构造函数。
enquiries = ObjectFactory.GetInstance<Enquiry >();
通常只想在应用程序中的一个位置调用容器。那个地方就是你所说的组合根。