У мене є необхідність припинити застарілий метод. Я знаю [Obsolete]атрибут. Чи має Microsoft рекомендований посібник з найкращих практик для цього?
Ось мій поточний план:
А. Я не хочу створювати нову асамблею, тому що розробники повинні були б додати нове посилання на свої проекти, і я очікую, що отримаю багато горя від мого шефа та колег, якщо вони повинні це зробити. Ми також не підтримуємо кілька варіантів складання. Ми використовуємо лише останню версію. Зміна цієї практики вимагає змінити наш процес розгортання, що є великою проблемою (доведеться навчити людей, як робити справи з TFS замість FinalBuilder, і змусити їх відмовитися від FinalBuilder)
В. Позначте старий метод застарілим.
C. Оскільки реалізація змінюється (не підпис методу), мені потрібно перейменувати метод, а не створювати перевантаження. Отже, щоб зрозуміти користувачів про правильний метод, я планую додати повідомлення до [Obsolete]атрибуту. Ця частина мене турбує, тому що єдиною зміною, яку я вношу, є роз'єднання методу від рядка з'єднання. Але, оскільки я не додаю нової збірки, я не бачу цього шляху.
Результат:
[Obsolete("Please don't use this anymore because it does not implement IMyDbProvider. Use XXX instead.")];
/// <summary>
///
/// </summary>
/// <param name="settingName"></param>
/// <returns></returns>
public static Dictionary<string, Setting> ReadSettings(string settingName)
{
return ReadSettings(settingName, SomeGeneralClass.ConnectionString);
}
public Dictionary<string, Setting> ReadSettings2(string settingName)
{
return ReadSettings(settingName);// IMyDbProvider.ConnectionString private member added to class. Probably have to make this an instance method.
}