J'ai le besoin de supprimer progressivement une méthode obsolète. Je connais l' [Obsolete]attribut. Microsoft a-t-il un guide de bonnes pratiques recommandé pour ce faire?
Voici mon plan actuel:
R. Je ne veux pas créer un nouvel assemblage car les développeurs devraient ajouter une nouvelle référence à leurs projets et je m'attends à beaucoup de chagrin de mon patron et de mes collègues s'ils doivent le faire. Nous ne conservons pas non plus plusieurs versions d'assemblage. Nous utilisons uniquement la dernière version. Changer cette pratique nécessiterait de changer notre processus de déploiement, ce qui est un gros problème (il faut apprendre aux gens comment faire les choses avec TFS au lieu de FinalBuilder et les amener à abandonner FinalBuilder)
B. Marquez l'ancienne méthode comme obsolète.
C. Parce que l'implémentation change (pas la signature de la méthode), j'ai besoin de renommer la méthode plutôt que de créer une surcharge. Donc, pour informer les utilisateurs de la méthode appropriée, je prévois d'ajouter un message à l' [Obsolete]attribut. Cette partie me dérange, car le seul changement que je fais est de découpler la méthode de la chaîne de connexion. Mais, comme je n'ajoute pas de nouvel assemblage, je ne vois aucun moyen de contourner cela.
Résultat:
[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.
}