WebRequest
- это абстрактный класс, который имеет фабричный метод, Create
который, в зависимости от переданного URL-адреса, создает экземпляр конкретного подкласса. Нужны вы или хотите,
HttpWebRequest httpreq = (HttpWebRequest)WebRequest.Create(strUrl);
а не
WebRequest req = WebRequest.Create(strUrl);
зависит от ваших потребностей и от того, какие URL-адреса вы передаете.
Если вы передаете только URL-адреса HTTP:, тогда предыдущий код позволяет вам получить доступ к свойствам и методам, которые подкласс HttpWebRequest
реализует в дополнение к тем, которые определены в базовом классе WebRequest
. Но если вы передали URL-адрес FTP :, попытка преобразования HttpWebRequest
завершится неудачей.
Последний является общим и не даст сбоев ни для одного из типов поддерживаемых URL-адресов, но, конечно, без преобразования в какой-либо подкласс вы можете получить доступ только к свойствам и методам, которые определяет базовый класс.
- через Мартина Хоннена