我是Orleans的新手,目前使用它来处理使用奥尔良溪流传递到谷物的传入事件。 Orleans客户端向流发送类型为' EventData'的对象,这些对象在我们使用的单独nuget中实现。 在Orleans silo方面,我们有一个使用ImplicitStreamSubscription订阅此流的谷物。 grain接口不使用' EventData',实际上流订阅是此粒度的主要入口点。
我遇到的问题是当客户尝试发送' EventData'对于流的实例,我找回了一个关于' EventData'的缺失序列化器的异常。类。标记' EventData' class [Serializable]解决了这一问题,但理解并没有使用奥尔良的内置专用序列化器。
如何让Orleans为“事件数据”使用内置生成的序列化器?
根据documentation,似乎必须将奥尔良模板nuget添加到' EventData'装配工程。确实是吗?由于它是在奥尔良以外的运行环境中使用的nuget,我想保留它而不提及奥尔良。
答案 0 :(得分:0)
在这里回答:https://github.com/dotnet/orleans/issues/1654
需要将以下属性添加到grain接口代码中:
[assembly:KnownType(typeof(EventData))] [assembly:KnownAssembly(typeof(EventData))]