Доступ к свойствам коллекции объекта для объекта записи через веб-браузер - PullRequest
2 голосов
/ 19 ноября 2011

Я тяну свои волосы сюда. Я использую элемент управления 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 или не является объектом

Мы будем очень признательны за помощь или за то, что я делаю неправильно.

Спасибо!

Ответы [ 2 ]

2 голосов
/ 11 декабря 2012

Я столкнулся с той же проблемой, и использование скриптового словаря сработало. Вот сайт, который объясняет, как работать со словарем сценариев .

Я в основном создаю другую функцию, чтобы поместить объект в словарь сценариев и вызвать его оттуда.

Не забудьте сделать объекты в списке com видимыми, если хотите их вызвать.

0 голосов
/ 29 сентября 2012

Добавить ссылку на Microsoft Scripting Runtime и использовать Scripting.Dictionary для своего свойства списка?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...