我目前正在 C# 中使用 Microsoft EventSources 进行试验。一个限制如下
...传递给 ETW 方法的参数的数量和类型必须与传递给它调用的 WriteEvent 重载的类型完全匹配。例如:
[Event(2, Level = EventLevel.Informational)]
public void Info(string message, int count)
{
base.WriteEvent(2, message, count);
}
这基本上限制了您在 EventSource 类中编写更丰富的 API。这基本上意味着您不能创建接收自定义对象的方法,并且在方法主体中您可以将其序列化为字符串(或 WriteEvent 重载支持的其他类型)。
您唯一可以决定的是方法名称和参数名称以及反映 WriteEvent 重载的计数。还是我错了?