Почему DataMember в WCF не возвращает тип?

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

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

Ответ 1

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

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

Ответ 2

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

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