相关疑难解决方法(0)

如何在C#中检查对象是否可序列化

我正在寻找一种简单的方法来检查C#中的对象是否可序列化.

我们知道,通过实现ISerializable接口或将[Serializable]放在类的顶部,可以使对象可序列化.

我正在寻找的是一种快速检查方法,而无需反映类以获得它的属性.接口可以快速使用is语句.

使用@Flard的建议这是我提出的代码,尖叫是有更好的方法.

private static bool IsSerializable(T obj)
{
    return ((obj is ISerializable) || (Attribute.IsDefined(typeof (T), typeof (SerializableAttribute))));
}
Run Code Online (Sandbox Code Playgroud)

或者甚至更好地获取对象的类型,然后在类型上使用IsSerializable属性:

typeof(T).IsSerializable
Run Code Online (Sandbox Code Playgroud)

请记住,这似乎只是我们正在处理的类,如果类包含其他类,您可能想要检查它们或尝试序列化并等待错误,如@pb指出的那样.

c# serialization

93
推荐指数
6
解决办法
6万
查看次数

标签 统计

c# ×1

serialization ×1