Контекст: Windows Azure; Сообщество Visual Studio 2015; ClearScript; JScriptТрудно разоблачить XmlDocument для JScript с использованием ClearScript
У меня возникли проблемы с объектом XmlDocument для JScripts, выполняемого с использованием ClearScript.
Я инстанцировании интерпретатор JScript с использованием
JScriptEngine JSengine = new JScriptEngine(WindowsScriptEngineFlags.EnableDebugging | WindowsScriptEngineFlags.EnableJITDebugging);
Чтобы создать экземпляр объекта XmlDocument я попытался как
using System.Xml;
...
JSengine.AddHostType("CSXmlDocument", typeof(XmlDocument));
...
и
...
JSengine.AddCOMObject("CSXmlDocument", "MSXML2.DOMDocument");
...
и я выполнить сценарий JScript с использованием этого
...
object answer = JSengine.Evaluate(File.ReadAllText(rulesetFilename));
...
Моя трудность заключается в использовании объекта CSXmlDocument
внутри скрипта. Я пробовал все следующие безрезультатно.
var xmlObj1 = CSXmlDocument;
var xmlObj2 = new CSXmlDocument;
var xmlObj3 = CSXmlDocument();
var xmlObj4 = new CSXmlDocument();
Когда CSXmlDocument
определяются с помощью AddCOMObject
, второй по четвертым заклятиям дают ошибку
Unable to evaluate the expression. Operation not supported. Unknown error: 0x8013baff.
Первый вызов только дает мне доступ к трем методам, Equals
, GetHashCode
, GetType
.
Когда CSXmlDocument
определяется с использованием AddHostType
, первый дает только три метода, как указано выше. Второй вызов, кажется, дает доступ к полному набору свойств и методов (по крайней мере, вот что говорит VS2015 в сеансе отладки), однако, когда я пытаюсь использовать метод LoadXml
я получаю
xmlObj2.LoadXml(body)
Unable to evaluate the expression. Operation not supported. Unknown error: 0x8013baff.
Сейчас я работаю через две возможные ошибки:
- Кодировка символов, в свете another StackOverflow posting.
- Контексты разметки HTML-XML.
Это работало для меня тоже. Интересно. – bugmagnet