Ho la necessità di eliminare gradualmente un metodo obsoleto. Sono a conoscenza [Obsolete]dell'attributo. Microsoft ha una guida di best practice consigliata per farlo?
Ecco il mio piano attuale:
R. Non voglio creare un nuovo assembly perché gli sviluppatori dovrebbero aggiungere un nuovo riferimento ai loro progetti e mi aspetto di ricevere molto dolore dal mio capo e dai miei colleghi se devono farlo. Inoltre non gestiamo più versioni di assiemi. Usiamo solo l'ultima versione. Cambiare questa pratica richiederebbe di cambiare il nostro processo di distribuzione che è un grosso problema (bisogna insegnare alle persone come fare le cose con TFS invece di FinalBuilder e convincere loro a rinunciare a FinalBuilder)
B. Contrassegna il vecchio metodo come obsoleto.
C. Poiché l'implementazione sta cambiando (non la firma del metodo), devo rinominare il metodo anziché creare un sovraccarico. Quindi, per rendere gli utenti consapevoli del metodo corretto, ho intenzione di aggiungere un messaggio [Obsolete]all'attributo. Questa parte mi disturba, perché l'unica modifica che sto facendo è il disaccoppiamento del metodo dalla stringa di connessione. Ma, poiché non sto aggiungendo un nuovo assembly, non vedo alcun modo per aggirare questo.
Risultato:
[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.
}