我想在DataContract類中使用自定義的aplified類型(可以爲Nullable)。 我試圖寫一個IDataContractSurrogate
但它在反序列化時失敗。DataContract用於放大值類型的代理
我的放大型看起來是這樣的:
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)? 爲什麼我在使用IDataContractSurrogate將字符串替換爲Amplified時遇到InvalidCastException?
另一個信息:代理演員例外與放大的Guid發生。 – sanosdole