廃止されたメソッドを段階的に廃止する必要があります。私はその[Obsolete]属性を知っています。マイクロソフトには、これを行うための推奨されるベストプラクティスガイドがありますか?
これが私の現在の計画です:
A.開発者がプロジェクトへの新しい参照を追加する必要があるため、新しいアセンブリを作成したくありません。これを行う必要がある場合、上司や同僚から多くの悲しみを得ることが期待されます。また、複数のアセンブリバージョンを維持しません。最新バージョンのみを使用しています。このプラクティスを変更するには、展開プロセスを変更する必要があります(これは大きな問題です(FinalBuilderの代わりにTFSで物事を行う方法を人々に教え、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.
}