Обновлен до .net core 2.1, и теперь я не могу сериализовать заявку - PullRequest
0 голосов
/ 13 июня 2018

В настоящее время я отправляю претензии (типа System.Security.Claims.Claim) между двумя микро-службами Azure.Когда я был на .net Core 2.0, это работало нормально.Служебный слой сервисной матрицы сериализуется и десериализуется, как и ожидалось.При обновлении до .net core 2.1 я теперь получаю сообщение об ошибке:

System.Runtime.Serialization.InvalidDataContractException: «Тип» System.Security.Claims.Claim не может быть сериализован.Попробуйте пометить его атрибутом DataContractAttribute и пометить все его элементы, которые вы хотите сериализовать, атрибутом DataMemberAttribute.Кроме того, вы можете убедиться, что тип является общедоступным и имеет конструктор без параметров - все открытые члены этого типа будут сериализованы, и атрибуты не потребуются. '

1 Ответ

0 голосов
/ 14 июня 2018

Я вижу, вы ответили на это, имея отдельный тип претензии.Не уверен, что изменилось в типе претензий .NET, но оно должно быть.https://fuget.org/packages/System.Security.Claims/4.3.0/lib/netstandard1.3/diff/4.0.1/ сразу ничего не показывает, возможно, нужно действительно разобрать вещи, чтобы увидеть разницу.

Вы также можете обойти это, имея собственный сериализатор, который вы можете контролировать, и который является более разрешающим.Это особенно хорошо работает с вашими собственными типами, так как вы можете явно контролировать процесс.

Подробнее об этом здесь: https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-reliable-services-reliable-collections-serialization#custom-serialization

...