【发布时间】:2012-10-16 15:15:11
【问题描述】:
我有一个使用 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,所以我似乎唯一的选择是在我的自定义ErrorLog 中使用ServiceLocator,如果可能的话我想避免。
ELMAH 中是否有更好的钩子可供我用来注入?
【问题讨论】: