Почему [NonSerialized] не работает с автоматически реализуемыми свойствами?

[Serializable]
class MyClass
{
    [NonSerialized] int Foo { get; set; } // error
    [NonSerialized] int bar; // ok
}

Почему это запрещено?

Я знаю об обходных приемах, таких как

  • реализация ISerializable
  • переключения на XmlSerializer / XmlIgnore
  • переключение на ручной- реализованное свойство

. В частности, возникает вопрос , почему не разрешено [NonSerialized] для свойств, но разрешено для полей.

6
задан Stefan Monov 21 September 2010 в 13:46
поделиться