我想基於事件提供程序名稱來獲取事件提供的Guid ETW提供的Guid(例如:樣品測試)基於名稱.NET 4.0
示例代碼
[EventSource(Name = "Sample-Test")]
public sealed class EventSourceLogger : EventSource
這裏是我的供應商
internal class EventProviderVersionOne : EventProvider
{
internal EventProviderVersionOne(Guid id)
: base(id)
{ }
[StructLayout(LayoutKind.Explicit, Size = 16)]
private struct EventData
{
[FieldOffset(0)]
internal UInt64 DataPointer;
[FieldOffset(8)]
internal uint Size;
[FieldOffset(12)]
internal int Reserved;
}
}
我的記錄器類記錄事件
public class EventLogger
{
public static EventLogger Log = new EventLogger();
internal static EventProviderVersionOne MProvider = new EventProviderVersionOne(new Guid(ConfigurationSettings.AppSettings["EtwEventProviderGuid"]));
...
}
請根據EventSourceName提示獲取GUID所需的代碼。我已經註冊了Eventvwr。
但是不要忘了做ToUpperInvariant()首先.... – paullem