Недостаток создания класса для сериализации
Я использую предварительный просмотр Azure Cache и мне нужно сделать некоторые классы Serializable.
Есть ли какой-либо недостаток в том, что класс должен быть сериализуемым - например, проблема производительности?
[Serializable]
public class MyClass {}
Я нашел несколько связанных вопросов, но они не о недостатках.
Заранее спасибо
2 ответа
Нет, нет никаких внутренних издержек, если просто пометить как [Serializable]
, Единственная проблема, с которой я столкнулся BinaryFormatter
а также NetDataContractSerializer
паршивые сериализаторы, и большинство других сериализаторов не заинтересованы в этом флаге (хорошо, я могу быть предвзятым)
Предполагая, что вы говорите о стоимости использования Serializable
атрибут, а не фактический процесс сериализации, один недостаток заключается в том, что третья сторона обычно предполагает, что класс предназначен для сериализации. Хотя это может иметь место, если вы просто помечаете его сериализуемым ради него (и если есть вероятность, что третья сторона может взаимодействовать с ним), то вы, вероятно, захотите потратить время, чтобы убедиться, что класс подходит быть сериализованным эффективным способом. Так что с этой точки зрения это скорее компромисс между ресурсами, чем техническим.
С технической точки зрения, как сказал Марк Гравелл, простое использование атрибута не потребует никаких дополнительных затрат.