Использование для атрибута [Obsolete(string, bool)] для .NET

Примечание: я уже проверил msdn, он не отвечает на мой фактический вопрос, см. ниже.

Я пытаюсь использовать устаревший атрибут в (явно устаревшем) конструкторе в одном из моих классов. Вот сценарий:

Я хочу иметь возможность заставить разработчика обновить до нового конструктора, не затрагивая уже существующий и развернутый код. Таким образом, я могу прекрасно развернуть свой код в рабочей среде, но с точки зрения разработчиков, всякий раз, когда они входят в свой код, вместо того, чтобы просто получать «предупреждение», которое, я уверен, они просто проигнорируют, я хочу, чтобы они получали ошибка компиляции, потому что статус-кво больше не в порядке.

Итак, мой вопрос: затронет ли это только разработчиков или все вызывающие приложения, или я все неправильно понял?

пример кода:

public class MyClass
{
   private string _userID; //new code

   [Obsolete("This constructor is obsolete, please use other constructor.", true)]
   public MyClass()
   {
      _userID = ""; //defaulting to empty string for all those using this constructor
   }

   public MyClass(string userID)
   {
      _userID = userID; //this is why they need to use this constructor
   }
}

Будем признательны за любую помощь, заранее спасибо!

9
задан IWriteApps 30 May 2012 в 17:30
поделиться