2 回答

TA貢獻1799條經驗 獲得超8個贊
一種選擇是在類中序列化它
[DataContact]
public class ADesired
{
[DataMember]
public B Inner {get; set;}
public string InnerAsJsonString => Newtonsoft.Json.JsonConvert.SerializeObject(Inner);
}

TA貢獻1805條經驗 獲得超10個贊
如果你不關心性能,你可以使用 JObject 作為 Json-Property 類型。
using Newtonsoft.Json;
using Newtonsoft.Json.Linq;
[DatanContract]
public class ADesired
{
[JsonIgnore]
public B Inner { get; set; }
[JsonIgnore]
public string InnerJson { get; set; }
[DataMember]
[JsonProperty(nameof(Inner))
public JObject JInner
{
get => JObject.FromObject(Inner);
set { Inner = value.ToObject<B>(); InnerJson = value.ToString(); }
}
}
這樣在反序列化時,實際的 json 被保存為 json InnerJson,可以是什么,反序列化為Inner,當序列化回來時,任何內容Inner都會被序列化。
- 2 回答
- 0 關注
- 300 瀏覽
添加回答
舉報