WebRequest
- абстрактный класс, который имеет фабричный метод Create
, который, в зависимости от переданного URL, создает экземпляр конкретного подкласса. Если вам нужно или хотите HttpWebRequest httpreq = (HttpWebRequest)WebRequest.Create(strUrl);
вместо WebRequest req = WebRequest.Create(strUrl);
зависит от ваших потребностей, а также о том, какие URL, вы передаете в
Если вы передаете только в HTTP:. URL, то первый код позволяет получить доступ к свойствам и методы, подкласс HttpWebRequest
реализует в дополнение к тем, которые определены в базовом классе WebRequest
. Но если вы перешли по FTP: URL-адрес, попытка сбрасывания на HttpWebRequest
потерпит неудачу.
Последний является общим и не будет терпеть неудачу на любом из типов поддерживаемых URL-адресов, но, конечно же, без использования какого-либо подкласса вы можете получить доступ только к свойствам и методам, определяемым базовым классом.
- через Martin Honnen
post-related: http://stackoverflow.com/q/8209781/274502 – cregox