2009-05-18 11 views
3

C# 2008aus der Web-Client-Klasse Vererben

Ich bin nicht sicher, wie viel Arbeit es ist von der Web-Client-Klasse zu vererben.

Derzeit verwende ich es in meinem Projekt. Und ich kann mich zu nichts anderem ändern. Der Kunde möchte nach einer bestimmten Zeit eine Zeitüberschreitung haben. Der Webclient hat dies nicht.

Anstatt das Rad neu zu erfinden, denke ich daran, vom Web-Client zu erben und diese Eigenschaft hinzuzufügen.

Denken Sie, dass dies eine geeignete Lösung ist? Könnte es mehr Arbeit bedeuten, nur um das hinzuzufügen? Was ist der einfachste Weg, dies zu tun?

Vielen Dank,

+0

Warum nicht einfach HttpWebRequest verwenden? – BobbyShaftoe

+0

Hallo. Die gesamte Arbeit, die wir geleistet haben, basiert auf dem Web Client. Das würde bedeuten, dass wir viele Änderungen vornehmen müssten. Wenn wir jedoch vom Web-Client erben können, müssen wir lediglich unseren Code ändern. – ant2009

Antwort

2

verlängern webclient eine Timeout-Eigenschaft hinzuzufügen, die gegebenenfalls in einem überladenen Konstruktor (einem Timeout von 0 oder weniger bedeutet kein Timeout) eingestellt werden kann. Überschreiben Sie dann die GetWebRequest-Methode:

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; 
}