1

製品コードがこれらの型をインスタンス化することはおそらく意味がありませんが、コンストラクターの非推奨により、Http実装を使用するユニット テスト クライアントが本来WebRequest/Responseよりもはるかに多くの問題を抱えています。コンストラクターを取り除くことには価値がなく、コンストラクターを持つことには明らかな価値があるとは思いません。では、コンストラクターを廃止する技術的な理由は何ですか?

4

1 に答える 1

2

うーん、なぜ正確に のコンストラクターが必要なのHttpWebRequestですか? WebRequest.Create最初からすべてのバージョンでそのようなリクエストを作成するための好ましい方法として提案されていると比較して、それの好みはわかりません。

このメソッドはHttpWebRequestasを返しWebRequestますが、必要に応じて直接型にキャストできます。file://または などの他のプロトコルを指定するftp://と、対応する型が返されます。

この廃止リストWebRequestは、使用されるすべてのプラットフォームの .NET Core の標準化の一部であり、コードの 1 つのポイントで作成を維持する方がはるかに簡単になると思います。

更新: classの派生
に関するこの記事を見たことがあると思いますので、ここに私の意見の別のパックを書きます:WebRequest

から出発するときはWebRequest、次の 2 つのポイントが必要です。

MSDN が言うように:

このHttpWebRequestクラスは、デフォルトで HTTP および HTTPS スキームのサービス要求に登録されています。WebRequestこれらのスキームに別の子孫を登録しようとすると失敗します。

したがって、Microsoft はhttpおよびhttps指向のクラスを制御したいと考えており、この機能を独自のものに置き換えることを誰も望んでいません。これは、いくつかのセキュリティ上の懸念から実行できると思います。悲しいけれど事実です。

于 2015-03-12T23:44:51.707 に答える