Почему ProtoContractAttribute недопустим для структуры? - PullRequest
1 голос
/ 06 ноября 2011

Почему нельзя ProtoContract применить к пользовательской структуре?В соответствии с этим вопросом и ответом и кодом партнера, очевидно, что структуры можно сериализовать с помощью protobuf-net, используя вместо этого DataContract.Есть ли недостатки в использовании этого обходного пути?ProtoContract говорит, что это может быть применено только к классам и перечислениям;это устаревшее ограничение от v1?Я использую самый последний выпуск (r470).

1 Ответ

1 голос
/ 06 ноября 2011

В v1 он недоступен для struct, что не является необоснованным, поскольку v1 не поддерживает структуры.Это должно работать в R470, хотя;если он не работает, вы, вероятно, на самом деле не используете R470!Вот код:

[AttributeUsage(AttributeTargets.Class | AttributeTargets.Struct |
    AttributeTargets.Enum | AttributeTargets.Interface,
    AllowMultiple = false, Inherited = true)]
public sealed class ProtoContractAttribute : Attribute
{ ... }

Я почти уверен, что есть тесты, которые используют это, и я точно знаю, , что я выполнил много работы "на работе" на этой неделе сериализует структуры таким образом с v2.

Пожалуйста, проверьте, используете ли вы правильный dll.

...