Это зависит от того, что вы делаете. Атрибут [Obsolete]
равен , в основном , для использования во время компиляции, но имейте в виду, что некоторые части среды выполнения имеют другое поведение, когда оно присутствует (см. Ниже). может вызывать проблемы даже для существующего кода, который не перестраивается, поэтому мы должны сделать вывод, что NO , [Obsolete]
не проверяется только во время компиляции.
Например, код ниже напишет Foo
, но не Bar
:
using System;
using System.Xml.Serialization;
public class Data
{
public int Foo { get; set; }
[Obsolete] public int Bar {get;set;}
static void Main()
{
var data = new Data { Foo = 1, Bar = 2 };
new XmlSerializer(data.GetType()).Serialize(Console.Out, data);
}
}
(XmlSerializer
тоже среда выполнения, не является частью компилятора)