我有一个使用 EF Code-First 上下文来存储错误的 ELMAH 自定义错误日志:-
class EntityFrameworkElmahErrorLog
{
public EntityFrameworkElmahErrorLog(IDictionary config) : this() { }
public override ErrorLogEntry GetError(string id)
{
using (var context = new MyContext())
{
var intId = Int64.Parse(id, CultureInfo.InvariantCulture);
var item = context.ErrorLog.Single(x => x.Id == intId);
return new ErrorLogEntry(this, id, ErrorXml.DecodeString(item.Details));
}
}
// etc.
}
ErrorLog 连接在 web.config 中:-
<errorLog type="MyProject.EntityFrameworkErrorLog, MyProject" />
我已经在项目的其他地方使用了 Ninject。我想注入MyContext
以便ErrorLog
不实例化它自己的依赖项,但我没有运气在文档中找到一个钩子。ELMAH 似乎在ErrorLog
内部实例化,所以我似乎唯一的选择是ServiceLocator
在我的 custom 内部使用ErrorLog
,如果可能的话我想避免。
ELMAH 中是否有更好的钩子可供我用来注入?