我在Nancy写一个服务,我使用一些中间件来监控服务:
app.UseOwin(buildFunc =>
{
var log = ConfigureLogger();
buildFunc.UseMonitoringAndLogging(log, HealthCheck);
buildFunc.UseNancy();
});
中间件配置为使用HealthCheck()
类中定义的Startup
函数:
public async Task<bool> HealthCheck()
{
return await SomeRepo.HealthCheck();
}
SomeRepo
有一个HealthCheck()
方法,用于查询数据库以确认其可用/响应。但是如何将SomeRepo
注入Startup
类,或者访问容器以解析SomeRepo
?
答案 0 :(得分:0)
此时你仍然在Owin,而不是在Nancy管道中。你在运行什么主机?如果您使用aspnetcore
,则可以在RegisterServices()
方法中注册您的deps,它将处理您方法的注入。您可以使用Autofac
或StructureMap
,这样您就可以与Nancy共享容器,例如this。