Re: Наследование от класса WebRequest
От: HowardLovekraft  
Дата: 21.01.11 08:02
Оценка:
Здравствуйте, TDLite, Вы писали:

TDL>Пытаюсь реализовать класс, который наследовал бы WebRequest.

TDL>Как в данном случае правильно провести наследование?
WebRequest — хитрая штука.

Он создает конкретную реализацию запроса по префиксу, определяющему схему (http, ftp и т.д.), через фабричный метод Create. Для того, чтобы создавался правильный наследник WebRequest, префикс схемы должен быть зарегистрирован с помощью своей реализации интерфейса IWebRequestCreate и метода WebRequest.RegisterPrefix.

После чего такой код будет работать:
var request = (MyProtocolWebRequest)WebRequest.Create("myprotocol://server");


При этом зарегистрировать своего наследника WebRequest для HTTP — нельзя:

The HttpWebRequest class is registered to service requests for HTTP and HTTPS schemes by default. Attempts to register a different WebRequest descendant for these schemes will fail.


Наверное, можно придумать свою схему и отправлять через нее HTTP-запросы.
Но, судя по вот этому примеру, действительно, должно хватить extension-метода(-ов), как предположил
Автор: Lloyd
Дата: 21.01.11
Lloyd.

З.Ы. IMHO, в MS придумали дурацкую схему наследования WebRequest'ов.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.