ich einen Dienst in Nancy Schreiben und ich verwende einige Middleware für die Überwachung der Service:Zugang registrierte Objekt in Nancy Startup Klasse
app.UseOwin(buildFunc =>
{
var log = ConfigureLogger();
buildFunc.UseMonitoringAndLogging(log, HealthCheck);
buildFunc.UseNancy();
});
Die Middleware zu verwenden, um eine HealthCheck()
Funktion im Startup
definiert so konfiguriert ist, Klasse:
public async Task<bool> HealthCheck()
{
return await SomeRepo.HealthCheck();
}
SomeRepo
hat eine HealthCheck()
Methode, die die Datenbank zugänglich zu bestätigen abfragt ist/reagieren. Aber wie kann man SomeRepo
in die Klasse Startup
injizieren, oder alternativ auf den Container zugreifen, um SomeRepo
aufzulösen?
Dank - ich habe von TinyIoC bewegt, so SimpleInjector ich Dekorateure registrieren. Ich registriere meinen Repo in 'Startup.cs' im SimpleInjector Container. Nancy hat ein Designprinzip, dass der Container nicht direkt von einem Modul aus zugänglich ist. Als Workaround habe ich den Container in einer öffentlichen statischen Eigenschaft gespeichert, aber ich hätte gerne eine bessere Option. –
Sie können den Container an den BootStapper und die Überschreibung 'GetApplicationContainer()' übergeben, um Ihre Instanz zurückzugeben –