Я хочу использовать пользовательский апплицированный тип (например, Nullable) в классе DataContract.Я пытался написать IDataContractSurrogate
, но при десериализации это не удалось.
Мой усиленный тип выглядит так:
public struct Amplified<TValue>
{
public TValue Value { get; set; }
//... some special code ...
}
А DataContract может выглядеть так:
[DataContract] public class MyDTO
{
[DataMember] public Amplified<string> SpecialString { get; set; }
}
Приведенный выше код работает, но создает ненужное вложение со свойством Value усиленного типа.Я хочу, чтобы DataContract представлял Ampliefied как обычную строку в проводе.
Возможно ли это с сериализаторами DataContract (JSON & Xml)?Почему я получаю InvalidCastException при использовании IDataContractSurrogate для замены Amplified на строку?