我目前拥有的:
我有一个简单的字典类型string, DbContext
我正在像这样注册我的字典
container.Register<IDictionary<string, DbContext>>(x => dbContexts).ReusedWithin(ReuseScope.Request);
并通过简单地将字典注入我的构造函数来再次使用字典。所以我总是用其中的每个 DbContext 注入整个字典。然后,我通过使用存储在我的用户会话中的标识符来获得正确的 DbContext。所以使用 DbContext 看起来像这样:
private readonly IDictionary<string, DbContext> _dbContexts;
public FooService(IDictionary<string, DbContext> dbContexts)
{
_dbContexts = dbContexts;
}
public void Bar()
{
var userSession = GetSession();
var data = _dbContexts[userSession.TargetConnectionIdentifier].Table.ToList();
}
我想要的是
我只想将一个 DbContext 注入到我的类中。使用我会话中的相同属性作为标识符。我已经看到 Funq 提供了使用名称(例如RegisterAs<>())注册实例的方法。但我不太确定如何正确使用它们。
private readonly DbContext _dbContext;
public FooService(DbContext dbContext)
{
_dbContext = dbContext;
}
我希望 Funq 自动为我解析正确的对象,具体取决于我的会话中特定属性的值。
如果有人知道答案,我将不胜感激。