Почему DataMember в WCF не может вернуть тип? - PullRequest
11 голосов
/ 10 июля 2009

Попытка заставить это работать, но без удачи:

[DataMember]
public Type ParameterType { get; set;}

Ответы [ 2 ]

16 голосов
/ 10 июля 2009

Веб-сервисы, как правило, должны быть кроссплатформенными. Что бы Java-программа делала с System.Type из .NET?

Кроме того, какую часть Type вы хотели бы видеть сериализованной, и как бы вы хотели, чтобы она десериализовалась?

10 голосов
/ 10 июля 2009

Любое поле или свойство, которое возвращает System.Type, нельзя сериализовать с использованием WCF, потому что во время выполнения фактический тип объекта - System.RuntimeType, который помечен как внутренний и поэтому не может быть автоматически сериализован DataContractSerializer , который может только сериализовать общедоступные типы.

Однако вы можете написать IXmlSerializer обертку вокруг System.Type, которая будет извлекать информацию, которую вы намереваетесь передать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...