c# - 如何用枚举替换事件ID?
问题描述
我有从 EventSource 继承的类:
[EventSource(Name = "MyEventSource")]
public sealed class ExceptionHundler : EventSource
{
public static ExceptionHundler Log = new ExceptionHundler();
[NonEvent]
public void WriteLog(Exception exception)
{
UnhandledException(exception.Message);
}
[Event(601, Channel = EventChannel.Admin, Message = "Unhandled exception occurred. Details: {0}", Keywords = EventKeywords.None, Level = EventLevel.Critical)]
private void UnhandledException(string exceptionMsg)
{
WriteEvent(601, exceptionMsg, Environment.MachineName);
}
}
如您所见,我在属性事件(其 601)中设置事件 ID。现在我想创建枚举并使用它而不是事件 ID,例如:
enum EventType
{
AppCrashed
}
和事件属性:
[Event(EventType.AppCrashed, Channel = EventChannel.Admin, Message = "Unhandled exception occurred. Details: {0}", Keywords = EventKeywords.None, Level = EventLevel.Critical)]
有没有办法做到这一点?
解决方案
以下应该工作
[Event((int)EventType.AppCrashed, Channel = EventChannel.Admin, Message = "Unhandled exception occurred. Details: {0}", Keywords = EventKeywords.None, Level = EventLevel.Critical)]
private void UnhandledException(string exceptionMsg)
{
WriteEvent(601, exceptionMsg, Environment.MachineName);
}
不要忘记在声明期间分配枚举值。
enum EventType
{
AppCrashed = 601
}
推荐阅读
- flutter - Flutter如何从firebase获取值日期时间(时间戳)到syncfusion日历
- javascript - Google Apps Scripts WebApps 的 Javascript 限制?
- video - 如何在手机中显示嵌入在youtube视频中的字幕?
- android - 如何通过双击将小屏幕框架变为全屏
- javascript - html2canvas 和 jsPDF,promise 错误,createObjectURL 不是函数
- amazon-s3 - 具有下游依赖项的 Terraform 条件“for_each”
- google-my-business-api - Google My Business API 的测试和开发
- python - Redshift python连接器列名称是字节字符串
- unity3d - 无法将动画从 Blender 导出到 Unity
- opencv - 如何设置 OpenCV 以在 juypter notebook 中使用 ijava 内核运行?