我需要淘汰一种过时的方法。我知道这个[Obsolete]属性。Microsoft是否有推荐的最佳实践指南来执行此操作?
这是我目前的计划:
答:我不想创建一个新的程序集,因为开发人员将不得不为其项目添加新的引用,并且我希望如果老板和同事必须这样做,将会引起很多痛苦。我们也不维护多个程序集版本。我们仅使用最新版本。更改此做法将需要更改我们的部署过程,这是一个大问题(必须教人们如何使用TFS而不是FinalBuilder来做事情,并让他们放弃FinalBuilder)
B.标记旧方法已过时。
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.
}