10 c# casting json.net get-event-store
我正在编写一个简单的事件调度程序,其中我的事件作为具有clr类型名称的对象和表示原始事件的json对象(在将byte []处理到jobject之后)被触发.如果有人想知道具体细节,我正在使用GetEventStore.
我想把那个clr类型做两件事:
我已经设法使用以下代码使第1部分正常工作:
var processedEvent = ProcessRawEvent(@event);
var t = Type.GetType(processedEvent.EventClrTypeName);
var type = typeof(IHandlesEvent<>).MakeGenericType(t);
var allHandlers = container.ResolveAll(type);
foreach (var allHandler in allHandlers)
{
var method = allHandler.GetType().GetMethod("Consume", new[] { t });
method.Invoke(allHandler, new[] { processedEvent.Data });
}
Run Code Online (Sandbox Code Playgroud)
ATM的问题是processedEvent.Data是一个JObject - 我知道processedEvent.Data的类型,因为我已经在它上面定义了它.
如何在不对类型名称进行任何讨厌的切换的情况下将该JObject解析为类型t?
Ami*_*ich 10
用途ToObject:
var data = processedEvent.Data.ToObject(t);
Run Code Online (Sandbox Code Playgroud)
或者如果你有一个已知的类型,那么:
MyObject data = processedEvent.Data.ToObject<MyObject>();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8103 次 |
| 最近记录: |