Замыкания позволяют моделировать поведение, инкапсулируя и код, и контекст в одну конструкцию.
Ключевая концепция заключается в том, что код вашей функции (лямбда) может ссылаться не только на свои собственные переменные, но также на все, что не видно для кода, переменные a
и b
в вашем случае.
В Java замыкания могут ссылаться только на конечные или эффективно конечные переменные. Это означает, что ссылка на переменную не может быть изменена, и замыкание видит только фактическое неизменяемое состояние (значение на самом деле не является неизменным, окончательное означает, что переменная не может быть переназначена). В теории это не обязательно. Например, в JavaScript вы можете написать такой код:
function newCounter() {
let count = 0;
return function() { return ++count; };
}
const nc = newCounter();
console.log(nc()); // 1
console.log(nc()); // 2
console.log(nc()); // 3
Здесь внутренняя функция newCounter
по-прежнему имеет доступ к count
(его контекст) и может изменять его (переменная является изменяемой) .
Обратите внимание, что переменная counter
недоступна для любых других частей вашего кода за пределами замыкания.
Необходимо ли предоставить учетные данные прокси?
Если так, это должно помочь: "Предоставляя Учетные данные Аутентификации к XmlResolver при Чтении из Файла" http://msdn.microsoft.com/en-us/library/aa720674.aspx
В основном, Вы...
Это - код, который я закончил тем, что использовал:
WebProxy wp = new WebProxy(Settings.Default.ProxyAddress);
wp.Credentials = new NetworkCredential(Settings.Default.ProxyUsername, Settings.Default.ProxyPassword);
WebClient wc = new WebClient();
wc.Proxy = wp;
MemoryStream ms = new MemoryStream(wc.DownloadData(url));
XmlTextReader rdr = new XmlTextReader(ms);
return XDocument.Load(rdr);
Используйте ответ lomaxx, но изменение
MemoryStream ms = new MemoryStream(wc.DownloadData(url));
XmlTextReader rdr = new XmlTextReader(url);
к
MemoryStream ms = new MemoryStream(wc.DownloadData(url));
XmlTextReader rdr = new XmlTextReader(ms);
Вы не можете настроить XMLDocument для использования прокси. Можно использовать класс WebRequest или WebClient для загрузки данных через прокси, и передача получила ответный поток к XMLDocument
, Также можно попытаться использовать класс XmlTextReader. Это позволяет Вам учетные данные сети набора. Для получения дополнительной информации см.:
Учетные данные Аутентификации Предоставления к XmlResolver при Чтении из Файла
Необходимо использовать WebProxy и WebRequest для загрузки xml, затем проанализировать его.