我正在努力实施健康检查操作。我想包含 HealthReport 对象以便将其存储在我的 MongoDB 中。 但是,我无法弄清楚如何以任何方式检索 HealthReport 的实例。并且没有我可以利用的 MongoDB 的 NuGet 存储包
我尝试实例化一个新的 HealthReport 对象,但缺少一些关键变量。另外,我似乎无法从 Program.cs 解析任何实例到我的类。我在任何地方都找不到 HealthReport 对象
您可以注入
HealthCheckService
并手动获取报告进行存储。
private readonly HealthCheckService _healthCheckService;
public HealthController(HealthCheckService healthCheckService( {
_healthCheckService = healthCheckService;
}
然后可以调用CheckHealth方法生成HealthReport;
var healthReport = await _healthCheckService.CheckHealthAsync();
然后以您想要的方式存储您的
HealthReport
。
您可能希望将
HealthReport
存储为 json,在这种情况下您需要一些自定义 json 处理;
var jsonString = JsonConvert.SerializeObject(healthReport, settings: new JsonSerializerSettings
{
Converters = new List<JsonConverter>
{
new MethodBaseConverter()
}
});
/// <summary>
/// Exception have a TargetSite property which is a methodBase.
/// This is useless to serialize, and can cause huge strings and circular references - so this converter always returns null on that part.
/// </summary>
public class MethodBaseConverter : JsonConverter<MethodBase?>
{
public override void WriteJson(JsonWriter writer, MethodBase? value, JsonSerializer serializer)
{
// We always return null so we don't object cycle.
serializer.Serialize(writer, null);
}
public override MethodBase? ReadJson(JsonReader reader, Type objectType, MethodBase? existingValue, bool hasExistingValue,
JsonSerializer serializer)
{
return null;
}
}