Mam potrzebę wycofania przestarzałej metody. Mam świadomość tego [Obsolete]atrybutu. Czy Microsoft ma zalecany przewodnik najlepszych praktyk w tym zakresie?
Oto mój obecny plan:
A. Nie chcę tworzyć nowego zestawu, ponieważ programiści musieliby dodać nowe odniesienie do swoich projektów i spodziewam się dużo żalu od mojego szefa i współpracowników, jeśli będą musieli to zrobić. Nie utrzymujemy również wielu wersji zestawu. Używamy tylko najnowszej wersji. Zmiana tej praktyki wymagałaby zmiany naszego procesu wdrażania, co jest dużym problemem (trzeba nauczyć ludzi, jak robić rzeczy z TFS zamiast z FinalBuilder i zmusić ich do rezygnacji z FinalBuilder)
B. Oznacz starą metodę jako przestarzałą.
C. Ponieważ implementacja się zmienia (nie podpis metody), muszę zmienić nazwę metody zamiast tworzyć przeciążenie. Aby więc uświadomić użytkownikom właściwą metodę, planuję dodać wiadomość do [Obsolete]atrybutu. Ta część mnie niepokoi, ponieważ jedyną zmianą, którą wprowadzam, jest oddzielenie metody od ciągu połączenia. Ale ponieważ nie dodam nowego zestawu, nie widzę w tym żadnej możliwości.
Wynik:
[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.
}