При использовании HttpWebRequest через HttpWebRequest.Create (URL) есть более простой способ, чем следующие инициализировать HttpWebRequest с помощью инициализатора объекта:коллекция HttpWebRequest Initializer C#
class RequestLight
{
public HttpWebRequest WebRequestObj;
public RequestLight(string url)
{
WebRequestObj = HttpWebRequest.CreateHttp(url);
}
}
Теперь это можно сделать следующим образом (желаемый эффект инициализатора объекта для объекта webreq)
var obj = new RequestLight("http://google.com")
{ WebRequestObj = { CookieContainer = null } }.WebRequestObj;
Я что-то не хватает? Или это самый простой способ получить желаемый эффект?
Примечание: Используя оригинальный способ, который вы должны установить, создайте объект с помощью статического метода, затем присвойте каждому свойству по одному.
Вы имеете в виду инициализатор объекта, а не инициализатор коллекции. Но непонятно, почему у вас есть этот «RequestLight» в первую очередь. Почему не просто два заявления? 'var request = HttpWebRequest.CreateHttp (url); request.CookieContainer = null; ' –
Да, я имел в виду инициализатор объекта. И это для удобства (и инициализатор объекта намного чище, чтобы иметь дело). Желательно, чтобы приложения и инструменты строили все аналитические веб-свойства, поэтому желательно инициализировать запрос оптимальным способом. – Curtis
Инициализатор объекта является чище, чтобы иметь дело с *, если * вы находитесь в ситуации, когда вам нужно сделать это в одном выражении. Но если это простая локальная переменная, я бы сказал, что синтаксис, который у вас есть, значительно меньше, чем просто два оператора. Предложение в моем ответе немного менее неясное, я думаю (и более общее), но я бы, вероятно, все еще использовал два утверждения в большинстве случаев. –