Я ищу простой способ проверить, сериализуем ли объект в C #.
Как мы знаем, вы делаете сериализуемый объект, реализуя интерфейс ISerializable или помещая [Serializable] в верхнюю часть класса.
То, что я ищу, это быстрый способ проверить это без необходимости отражать класс, чтобы получить его атрибуты. Интерфейс будет быстрым, используя оператор is .
Используя предложение @ Flard, это код, который я придумал, кричать, что есть лучший способ.
private static bool IsSerializable(T obj)
{
return ((obj is ISerializable) || (Attribute.IsDefined(typeof (T), typeof (SerializableAttribute))));
}
Или, что еще лучше, просто получите тип объекта и затем используйте свойство IsSerializable для типа:
typeof(T).IsSerializable
Помните, что это кажется только тем классом, с которым мы имеем дело, если класс содержит другие классы, вы, вероятно, захотите проверить их все или попробовать и сериализовать и ждать ошибок, как указывал @pb.