Я тяну свои волосы сюда. Я использую элемент управления WebBrowser для размещения локальной HTML-страницы, которую я имею (приложение киоска). Я создал видимый com объект для использования в свойстве objectforscripting экземпляра webbrowser. Все работает нормально, я могу вызвать свой com-объект со страницы javascript, свойств и методов. За исключением свойств коллекции. Вот мой код.
[PermissionSet(SecurityAction.Demand, Name = "FullTrust")]
[System.Runtime.InteropServices.ComVisibleAttribute(true)]
public class TestObjectModel
{
public string sProp = "testprop";
public List<string> sList = new List<string>();
public TestObjectModel()
{
sList.Add("test");
}
}
У меня нет проблем с sProp, ниже работает ..
<button onclick="alert(window.external.sProp)">test 1</button>
Однако я не могу получить доступ к свойству списка.
<button onclick="alert(window.external.sList[0])">test 2</button>
Я пытался преобразовать в хеш-таблицу, словарь и даже создать свой собственный класс, который наследуется от IList, и пометить этот класс как удобный. Независимо от того, что я делаю, я всегда получаю ошибку
window.external.sList.0 имеет значение null или не является объектом
Мы будем очень признательны за помощь или за то, что я делаю неправильно.
Спасибо!