Я пытаюсь использовать вместо обычного HttpWebRequest
HttpWebRequest потомок
// get a login page
HttpWebRequest req = (HttpWebRequest)WebRequest.Create("http://www.facebook.com/");
моего настроенного класса FacebookHttpWebRequest
, которые выглядят так:
// get a login page
FacebookHttpWebRequest req = (FacebookHttpWebRequest)WebRequest.Create("http://www.facebook.com/");
Здесь настраивается реализация класса
class FacebookHttpWebRequest : HttpWebRequest
{
public FacebookHttpWebRequest() : base()
{
this.UserAgent = "Mozilla/5.0 (Windows NT 5.1; rv:8.0.1) Gecko/20100101 Firefox/8.0.1";
this.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
}
}
, но возникает ошибка Ошибка
'System.Net.HttpWebRequest' не содержит конструктор, который принимает 0 аргументы
И это действительно требует два аргумента: serializationInfo
и streamingContext
.
Так как я могу сделать свой собственный HttpWebRequest
потомок? Я знаю, что могу использовать специальный метод, который будет настраивать обычный HttpWebRequest
, но для этого будет более элегантно иметь специальный класс.
* Почему * Вы хотели бы сделать это? Если вы сомневаетесь, вы должны одобрить композицию над наследованием, т. Е. Создать класс с «HttpWebRequest» в качестве поля. –
Я хочу, чтобы каждый раз настраивал экземпляр HttpWebRequest, а не настраивал его каждый раз. – kseen
Затем создайте * функцию *, которая создает экземпляры и возвращает настроенные. Наследование является излишним в этом сценарии. –