Здравствуйте, 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'ов.