Ich habe eine ELMAH benutzerdefinierte ErrorLog, die einen EF-Code-First Kontext verwendet, die Fehler zu speichern: -Wie kann ich Abhängigkeiten in einen benutzerdefinierten ELMAH-ErrorLog injizieren?
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.
}
Die ErrorLog in der web.config verdrahtet sind: -
<errorLog type="MyProject.EntityFrameworkErrorLog, MyProject" />
I‘ Ich verwende Ninject bereits anderweitig im Projekt. Ich möchte MyContext
injizieren, so dass die ErrorLog
nicht seine eigene Abhängigkeit instanziiert, aber ich habe kein Glück, einen Haken in der Dokumentation zu finden. ELMAH scheint die ErrorLog
intern zu instantiieren, so dass die einzige Option, die ich zu haben scheint, eine ServiceLocator
in meiner eigenen ErrorLog
ist, die ich wenn möglich vermeiden möchte.
Gibt es in ELMAH bessere Haken, die ich zum Einspritzen verwenden kann?
Perfekt, danke! –