2016-04-06 7 views
1

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

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

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

В соответствии с documentation, кажется, необходимо добавить шаблоны orleans nuget к проекту сборки EventData. Неужели? Поскольку это nuget, который используется в среде выполнения, отличной от Орлеана, я хотел бы сохранить его без ссылки на orleans.

ответ

0

что ответили здесь: https://github.com/dotnet/orleans/issues/1654

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

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