Готовый атрибут Obsolete в C#
Готовый атрибут Obsolete компилятор понимает сам. Пометка не выполняет код, а предупреждает, когда вызывают устаревший член.
Текст в скобках подсказывает, чем заменить вызов. Вызов устаревшего метода дает предупреждение.
Оставим старый метод помеченным, но вызовем новый. Вызов OldMethod дал бы предупреждение компилятора CS0618:
new Api().NewMethod();
class Api
{
[Obsolete("Use NewMethod instead")]
public void OldMethod() { }
public void NewMethod() => Console.WriteLine("new"); // выведет "new"
}
Пометьте устаревший метод legacy и вызовите актуальный, который выводит v2.