如何在 C# 中检查可反序列化的对象?
How to check an object deserializable in C#?
我想检查一个对象是否可反序列化?我想检查一个字符串 json 是否可以反序列化?例如:
if(obj.IsDeserializable()) { var obj1 = new JavaScriptSerializer().Deserialize<object>(CObject); } else { //dosomething ...}
我该怎么做?
你不能那样做。您可以使用 typeof(T).IsSerializable 检查对象是否可序列化。您可以做的是将其包装在 try-catch 块中,然后在序列化成功时对对象进行操作。 JavaScriptSerializer().DeserializeObject() 通常总是成功,但如果输入包含在类型 T 上不可用的成员定义,则 JavaScriptSerializer().DeserializeObject() 会抛出异常。
我想检查一个对象是否可反序列化?我想检查一个字符串 json 是否可以反序列化?例如:
if(obj.IsDeserializable()) { var obj1 = new JavaScriptSerializer().Deserialize<object>(CObject); } else { //dosomething ...}
我该怎么做?
你不能那样做。您可以使用 typeof(T).IsSerializable 检查对象是否可序列化。您可以做的是将其包装在 try-catch 块中,然后在序列化成功时对对象进行操作。 JavaScriptSerializer().DeserializeObject() 通常总是成功,但如果输入包含在类型 T 上不可用的成员定义,则 JavaScriptSerializer().DeserializeObject() 会抛出异常。