2010-10-06 2 views
3

Возможно ли выполнить Javascript в файле PAC из приложения .NET., Чтобы вернуть прокси-сервер?Получение данных из файла PAC

+0

Что означает возврат прокси-сервера? –

+0

Исправьте меня, если я ошибаюсь (что очень возможно), но не файлы PAC содержат функцию JavaScript, которая вернет нечто похожее на это: «PROXY proxy1.example.com:8080; PROXY proxy2.example.com: 8080" ? – Ben

ответ

2

Поскольку proxy auto-config file только исходный файл JavaScript, и вам нужно вызвать метод в нем, вы можете использовать компилятор JScript .NET (доступный в коде через JScriptCodeProvider) и/или переводчик (через JScriptEvaluate).

Компилятор: Вот пример кода compile JScript .NET code to a class, and then call a method on that class, который может быть подходящим для того, что вы ищете. Обратите внимание, что он использует Reflection, поэтому может возникнуть проблема, если вы находитесь в среде частичного доверия, например ASP.NET. Я не уверен, требуется ли Reflection для такого доступа, или это просто деталь реализации; если это проблема для вас, вы можете исследовать ее дальше, или вместо этого вы можете использовать интерпретатор.

Переводчик: Вот пример, который interprets JScript code using Microsoft.JScript.Eval.JScriptEvaluate. Поскольку ваш файл PAC определяет одну или несколько функций, он не возвращает ничего полезного. Вам нужно будет добавить строку в конце, которая вызывает FindProxyForURL с необходимыми аргументами; то вы можете оценить эту целую строку и получить свой результат. Или возможно, что вы можете оценить файл PAC, который будет объявлять эту функцию, а затем вы можете оценить вызов этой функции (я не использовал JScriptEvaluate, поэтому я не знаю, переносят ли глобальные переменные из одного вызова в следующий).

Смежные вопросы