從MSDN文檔中,寫事件只支持int和字符串參數類型。我想將用戶創建的ct傳遞給Write事件,如何獲得此功能?什麼是正確的序列化器來實現這個功能?如何將用戶定義的對象序列化爲WriteEvent?
1
A
回答
0
在Windows 10(也回遷到Win7的/ 8.1)有對Rich Payload Data支持,因爲淨4.6:
// define a ‘plain old data’ class
[EventData]
class SimpleData {
public string Name { get; set; }
public int Address { get; set; }
}
[EventSource(Name = "Samples-EventSourceDemos-RuntimeDemo")]
public sealed class RuntimeDemoEventSource : EventSource
{
// define the singleton instance of the event source
public static RuntimeDemoEventSource Log = new RuntimeDemoEventSource();
// Rich payloads only work when the self-describing format
private RuntimeDemoEventSource() : base(EventSourceSettings.EtwSelfDescribingEventFormat) { }
// define a new event.
public void LogSimpleData(string message, SimpleData data) { WriteEvent(1, message, data); }
}
RuntimeDemoEventSource.Log.LogSimpleData(
"testMessage",
new SimpleData() { Name = "aName", Address = 234 });
閱讀博客和文件的更多細節。
2
有幾種選擇:
- 使用the new .NET 4.6 feature爲magicandre1981建議。除非你必須使用.NET 4.5,4.0甚至3.5,否則這是更好的選擇。
- 手動它們序列化在JSON或債券或等
- 手動創建
EventData
struct和傳遞給WriteEventCore
(必須是內部unsafe
) - TPL目前使用這種方法。 - 或者你可以例如this。關於這個,有a blog post。
+1
FWIW,Jon Wagner在創建/生成EventSource時有一個[有趣的事情](https://github.com/jonwagner/EventSourceProxy) – Benjol
相關問題
- 1. 如何將對象序列化爲XML
- 2. 如何將對象序列化爲XDocument?
- 3. 使用.NET將JSON反序列化爲自定義對象
- 4. 將Objective-C反序列化爲自定義對象的JSON
- 5. 爲值對象自定義NewtonSoft.Json對象序列化
- 6. Django - 序列化爲JSON,如何序列化一個FK用戶對象
- 7. 如何將一般對象序列化爲Json並將Json反序列化爲Java中的對象
- 8. 如何將Json字符串反序列化爲自定義DTO C#對象?
- 9. GSON:自定義對象反序列化
- 10. 序列化自定義對象
- 11. 自定義對象集合序列化
- 12. 序列化自定義主體對象
- 13. 如何在Java中序列化在Java中反序列化用戶定義的Java對象?
- 14. 如何在Android中使用其他自定義對象的LinkedList序列化/反序列化對象?
- 15. 如何反序列化自定義對象列表
- 16. 如何使用Monodroid的System.Json將對象序列化爲JSON?
- 17. LINQ,自定義對象,序列化和對象引用
- 18. JDBC,用戶定義的對象和用戶定義對象的數組列表
- 19. C++:自定義對象序列化/反序列化失敗
- 20. 對象序列化爲JSON,如何序列化屬性(如XML)
- 21. 使用ObjectMapper從JSON反序列化爲自定義對象
- 22. 如何自定義複雜對象的序列化?
- 23. JMS序列化程序序列化自定義對象並反序列化
- 24. XML反序列化爲自定義對象列表
- 25. 如何將C#中的Type類對象序列化並反序列化爲YAML?
- 26. 如何使用Jackson 2.0將DateTime對象序列化爲ISO8601?
- 27. 對象序列化如何
- 28. 如何指定將由WebApi序列化的對象的名稱?
- 29. 如何將此json反序列化爲對象列表?
- 30. 將XML反序列化爲C#對象
Xml,Json,custom等等正確的序列化依賴於你在數據寫出時打算做什麼,以及你打算如何讀取它(人或代碼)。 –