2009-05-18 2 views
3

C#2008Webクライアントクラスから継承しています

Webクライアントクラスから継承する作業の量はわかりません。

現在、私は自分のプロジェクトで使っています。そして私は他に何も変えられない。顧客は一定期間後にタイムアウトしたい。 Webクライアントにはこれがありません。

私はホイールを再発明するのではなく、ウェブクライアントから継承してこのプロパティを追加することを考えています。

これは適切な解決策だと思いますか?これを追加するだけでもっと多くの作業ができますか?これを行う最も簡単な方法は何ですか?

多くのおかげで、

+0

なぜHttpWebRequestを使用しないのですか? – BobbyShaftoe

+0

こんにちは。私たちが行ったすべての作業は、Webクライアントに基づいています。それは私たちが多くの変更を加えなければならないことを意味します。しかし、Webクライアントから継承することができれば、すべてのコードを簡単に変更する必要があります。 – ant2009

答えて

2

は、必要に応じて、オーバーロードコンストラクタ(0以下の手段タイムアウトなしのタイムアウト)に設定することができるタイムアウトプロパティを追加するWebクライアントを拡張します。次に、GetWebRequestメソッドをオーバーライドします。

protected override WebRequest GetWebRequest(Uri address) 
{ 
    var req = base.GetWebRequest(address); 
    var httpReq = req as HttpWebRequest; 
    if (httpReq != null && Timeout > 0) 
    { 
     httpReq.Timeout = Timeout; 
    } 

    return req; 
} 
関連する問題