Сериализаторы для классов полезной нагрузки потоков Орлеана

Я как бы новичок в Орлеане и использую его в настоящее время для обработки входящих событий, переходящих к зернам с использованием потоков Orleans. Клиент Orleans отправляет в поток объекты типа EventData, которые реализованы в отдельном потребляемом нами nuget. На стороне Орлеана у нас есть зерно с подпиской на этот поток с помощью ImplicitStreamSubscription. Интерфейс зерна не использует EventData, и фактически подписка на поток является основной точкой входа для этого зерна.

Проблема, с которой я сталкиваюсь, заключается в том, что когда клиент пытается отправить экземпляры EventData в поток, я получаю исключение об отсутствии сериализатора для класса EventData. Маркировка класса EventData как [Serializable] решила эту проблему, но, как известно, не использует встроенный специализированный сериализатор Орлеана.

Как я могу заставить Орлеан использовать встроенные сгенерированные сериализаторы для EventData?

Согласно документации кажется, что необходимо добавить nuget шаблонов Orleans в проект сборки EventData. Так ли это на самом деле? Поскольку это nuget, который используется в среде выполнения, отличной от Орлеана, я хотел бы сохранить его без каких-либо ссылок на Орлеан.


person user1731971    schedule 06.04.2016    source источник


Ответы (1)


Ответ на этот вопрос был дан здесь: https://github.com/dotnet/orleans/issues/1654

Необходимо добавить следующие атрибуты в код интерфейса зерна:

[сборка: KnownType (typeof (EventData))] [сборка: KnownAssembly (typeof (EventData))]

person Gabi Kliot    schedule 02.06.2016