Из документации MSDN Write-event поддерживает только типы параметров int и string. Я хочу передать созданный пользователем ct в Write-event, как получить эту функциональность? Каким будет правильный сериализатор для достижения этой функциональности?Как сериализовать определенные пользователем объекты в WriteEvent?
1
A
ответ
0
В Windows 10 (также портированном для Win7/8.1) есть поддержка Rich Payload Data поскольку .Net 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 или Bond или т.д.
- вручную создать
EventData
-структуру и перейти кWriteEventCore
(должен быть внутриunsafe
) - TPL в настоящее время использует этот метод. - Или вы могли бы this например. Об этом a blog post.
+1
FWIW, Jon Wagner имеет [интересный взнос] (https://github.com/jonwagner/EventSourceProxy) для создания/создания EventSource – Benjol
Смежные вопросы
- 1. Как добавить стандартные и определенные пользователем объекты?
- 2. DataTable не объединяет определенные пользователем объекты
- 3. Как сериализовать бизнес-объекты SAP?
- 4. JDBC, объекты, определенные пользователем, и администратор объектов, определенных пользователем
- 5. Как заполнить объекты, определенные пользователем, из списка списков в scala
- 6. Как использовать только определенные пользователем объекты в рельсах?
- 7. Как сериализовать пользовательские объекты
- 8. Определенные пользователем и определенные пользователем свойства css
- 9. Как сериализовать интерфейс, набранный пользователем
- 10. Как сохранить определенные пользователем объекты с помощью StackExchange.Redis?
- 11. Как десериализовать json-объекты в определенные подклассы?
- 12. Как сериализовать объекты с angularjs
- 13. REST Framework: как сериализовать объекты?
- 14. Как я могу заменить определенные объекты в синтаксическом анализе на объекты, введенные пользователем?
- 15. Как использовать функции, определенные пользователем?
- 16. Определенные пользователем поля Django, как?
- 17. Как хэш-символы, определенные пользователем?
- 18. C++ atomic для указателей на объекты, определенные пользователем
- 19. Сериализовать вложенные объекты (список)
- 20. Правильно сериализовать объекты в java
- 21. Как добавить определенные пользователем параметры?
- 22. Как сериализовать сложные объекты в symfony2
- 23. как сериализовать объекты класса в документ xml
- 24. Как сериализовать хэш-объекты в Python
- 25. как json сериализовать объекты в python
- 26. Как сериализовать большие объекты/массивы в JSON
- 27. Определенные пользователем методы mongoose
- 28. MySQL определенные пользователем функции
- 29. Определенные пользователем функции в zend
- 30. Определенные пользователем термины в ElasticSearch
Xml, Json, custom и т. Д. Правильный сериализатор зависит от того, что вы намерены делать с данными при его выписывании и как вы собираетесь его читать (человек или код). –