2009-05-18 6 views
3

C# 2008Hérite de la classe de client Web

Je ne suis pas certain de la quantité de travail héritée de la classe client Web.

Actuellement, je l'utilise dans mon projet. Et je ne peux pas changer pour autre chose. Le client souhaite avoir un délai d'expiration après une certaine période de temps. Le client Web n'a pas cela.

Donc plutôt que de réinventer la roue, je pense hériter du client web et ajouter cette propriété.

Pensez-vous que cette solution est appropriée? Cela pourrait-il signifier plus de travail juste pour ajouter ceci. Quel est le moyen le plus simple d'y parvenir?

Merci,

+0

Pourquoi ne pas simplement utiliser HttpWebRequest? – BobbyShaftoe

+0

Bonjour. Tout le travail que nous avons fait a été basé sur le client Web. cela voudrait dire que nous devrions faire beaucoup de changements. Cependant, si nous sommes en mesure d'hériter du client Web qui aurait besoin de faire un simple changement dans l'ensemble de notre code. – ant2009

Répondre

2

étendent webclient pour ajouter une propriété de délai d'attente qui peut éventuellement être situé dans un constructeur surchargé (un délai d'attente de 0 ou moins de moyens sans délai d'attente). Puis remplacez la méthode 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; 
} 
Questions connexes