Я видел много разных способов сериализации объектов в C #, которые я не уверен, какой и когда использовать.
В текущей ситуации я сериализуюсь для экспозиции через WCF, поэтому я предполагаю, что атрибут [DataContract] - это путь.
В настоящее время я читаю в некотором XML, а затем выставляю полученный объект через WCF. Поэтому я десериализирую XML, для которого у меня нет доступа к исходным классам (поэтому я перестраиваю класс и могу реализовать сериализацию, как захочу). Затем он должен быть сериализуемым для WCF.
Но если [DataContract] подходит для этого случая, то почему бы мне не использовать его все время вместо ISerializable или атрибута [Serializable]?
Итак, два вопроса в одном: какие использовать для этой проблемы и почему существуют разные способы сериализации.