.NET Framework クラス ライブラリにおける廃止
.NET Framework は少しずつ変わっています。 バージョンが新しくなるたびに、新しい機能を提供する新しい型と型のメンバーが追加されてきました。 既存の型とそのメンバーも徐々に変わっています。 たとえば、一部の型は、その型がサポートするテクノロジが新しいテクノロジに置き換えられることで重要度が下がり、一部のメソッドは、何らかの形で優れた新しいメソッドに置き換えられています。
.NET Framework と共通言語ランタイムでは、下位互換性をサポートするように努めています (.NET Framework の特定のバージョンで開発したアプリケーションを、.NET Framework の次期バージョンで実行できるようにするためです)。 そのため、型または型のメンバーを単純に削除することはできません。 そこで、.NET Framework では、型または型のメンバーを廃止または非推奨とマークして、使用すべきではないことを示してきました。 型またはメンバーを廃止とすることで、開発者はそれが廃止されることを認識し、その削除に対応する時間が与えられました。 ただし、その型またはメンバーを使用する既存のコードは、.NET の次期バージョンで引き続き実行されます。
注意
.NET (Core) では、API を廃止しても、必ずしも API が削除されるとは限りません。 詳細については、「.NET での API の削除」を参照してください。
ObsoleteAttribute 属性
.NET Framework では、型または型のメンバーに ObsoleteAttribute 属性を指定することで、それが廃止されることを示しています。 この属性が型またはメンバーに適用されている場合、その型またはメンバーは、そのメンバーが使用されるコンパイル済みコードに影響せずに、将来のバージョンで削除される予定であることを意味します。
型または型のメンバーが旧式であることを示す以外に、ObsoleteAttribute は、その型またはメンバーが含まれているソース コードをコンパイラで処理する方法を定義します。 コードをコンパイルするが警告メッセージを出力するようにすることも、旧式の型またはメンバーの使用をエラーとして扱うこともできます。 前者の場合、コードを正常にコンパイルできますが、警告メッセージによって型またはメンバーが旧式であることが示されます。 後者の場合、コンパイルは失敗します。
コンパイルで警告メッセージではなくエラーが生成される場合でも、ObsoleteAttribute は実行時の動作には影響を与えません。 つまり、旧式の型またはメンバーを使用しているが正常にコンパイルされたアプリケーションは、常に正常に実行されます。 旧式の型またはメンバーを使用するアプリケーションを再コンパイルしようとした場合にのみ失敗します。
旧式の型とメンバーを処理する方法
既存のコードをアップグレードし再コンパイルするとき、コンパイラの警告を生成する廃止される型またはメンバーをアプリケーションで使用しても、問題はありません。 ただし、コンパイラの警告メッセージを確認して、アプリケーション コードを変更する必要があるかどうか判断する必要があります。 代わりとなる適切な方法がメッセージに示されていない場合は、次のいずれかの操作を行う必要があります。
可能であれば、コードを変更して旧式の型またはメンバーの使用を止めます。
\- または -
このテクノロジ分野に関するドキュメントを確認して、非推奨の機能の使用に対する対応方法を決定します。
既存のコードが、.NET Framework の以降のバージョンに対して再コンパイルされないよう選択することもできます。 代わりに、既存のコンパイル済みコードを実行する .NET Framework のバージョンを指定します。 たとえば、.NET Framework 3.5 に対してコンパイルされた app1.exe というアプリケーションがあるものの、このアプリケーションを .NET Framework 4.5 に対して実行したいとします。 この場合、次の手順が必要です。
メイン実行可能ファイルの構成ファイルを作成し、その名前を appName.exe.config にします。appName は、アプリケーションの実行可能ファイルの名前です。 このトピックの例の app1.exe というアプリケーションの場合は、app1.exe.config という名前の構成ファイルを作成します。
次のコードを構成ファイルに追加します。
<configuration> <startup> <supportedRuntime version="v4.0" /> </startup> </configuration>
.NET Framework の特定のバージョンを対象とするには、次の文字列値のいずれかを version
属性に割り当てます。
.NET Framework のバージョン | version 文字列 |
---|---|
4.8 (4.8.1 を含む) | v4.0 |
4.7 (4.7.1 と 4.7.2 を含む) | v4.0 |
4.6 (4.6.1 と 4.6.2 を含む) | v4.0 |
4.5 (4.5.1 および 4.5.2 を含む) | v4.0 |
4 | v4.0 |
3.5 | v2.0.50727 |
2.0 | v2.0.50727 |
1.1 | v1.1.4322 |
1.0 | v1.0.3705 |
.NET Framework 4.5 以降のバージョンの互換性のために残されている API
以前のバージョンの互換性のために残されている API
- .NET Framework 4 で互換性のために残されている型
- .NET Framework 4 で互換性のために残されているメンバー
- .NET Framework 3.5 Obsolete List (.NET Framework 3.5 の互換性のために残されている機能の一覧)
- .NET Framework 2.0 Obsolete List (.NET Framework 2.0 の互換性のために残されている機能の一覧)
関連項目
.NET