0

私が使う:

[Obsolete("Please use [NEW API] instead.")]

パブリック API を非推奨にしますが、 [NEW API]の標準が何であるかはわかりません。次の例はかなり標準的なようです。

[Obsolete("Please use Method2() instead.")] //This seems to be ok if Method2 is in the same class
[Obsolete("Please use Class2.Method1() instead.")] //This seems to be ok if we are referencing a different class in the same namespace
[Obsolete("Please use Namespace.Class2.Method1() instead.")] //This seems to be ok if we are referencing a different class in a different namespace

しかし、API を引数付きの特定のメソッドに置き換えると、ぼやけ始めます。

[Obsolete("Please use Method2(string, string) instead.")]

それは特定のメソッド タイプを参照する正しい方法ですか、それとも変数名を含めますか? 例えば:

[Obsolete("Please use Method2(string arg1, string arg2) instead.")]

そして今、難しいのは、型が別のアセンブリに移動された場合はどうですか、例えば:

[Obsolete("Please use Namespace.ClassName.Method2(), AssemblyName instead.")]
[Obsolete("Please use AssemblyName!Namespace.ClassName.Method2() instead.")]

どちらが正しい方法ですか、それとも別の方法がありますか?

4

1 に答える 1

0

あなたは正しい道を進んでいると思いますし、これは私が過去に行ったことと一致しています。私は、ObsoleteAttribute にもっと多くのオーバーロードが存在する可能性があると感じていました (おそらく、複数の属性がわずかに異なることを意味しているのではないでしょうか?)。あなたが言及したことを正確に行っている.NETフレームワークのいくつかの例を見てください。

[ObsoleteAttribute("This class has been deprecated. Please use System.Xml.Xsl.XslCompiledTransform instead. http://go.microsoft.com/fwlink/?linkid=14202")]
public sealed class XslTransform

[Obsolete("Please use Hashtable(int, float, IEqualityComparer) instead.")] 
public Hashtable(int capacity, float loadFactor, IHashCodeProvider hcp, IComparer comparer) : this(capacity, loadFactor) { 
于 2012-06-13T04:09:54.043 に答える