Я имитирую стороннее приложение VB.net для системы, над которой я работаю, - реального конца (что у меня нет доступ к) использует элемент управления WebBrowser и некоторый интерфейс javascript (к которому у меня есть доступ).«недопустимое присвоение свойств» при использовании коллекции с помощью элемента управления WebBrowser и ObjectForScripting
Большая часть работы работает, но у меня возникли проблемы с добавлением коллекций, на которые ссылается javascript. В файле JavaScript различных ссылок, как это присутствует:
var insSetCount = booking.InsertionSets.Count;
for (var nInsSet = 1; nInsSet <= insSetCount; nInsSet++) {
var insSet = booking.InsertionSets(nInsSet);
}
Этот объект выглядит как сборник какого-то ... Я читал, что общие списки не поддерживается COM, поэтому я попытался добавить Public InsertionSets As ArrayList
. Тем не менее, я получил следующее сообщение об ошибке на третьей строке выше JavaScript:
TypeError: Wrong number of arguments or invalid property assignment
Затем я попытался качению свою собственную коллекцию с явным присвоением По умолчанию недвижимости:
<ComVisible(True)>
Public Class InsertionSetCollection
Inherits CollectionBase
Public Sub New()
MyBase.New()
End Sub
Public Sub Add(ByVal obj As InsertionSet)
List.Add(obj)
End Sub
Default Public ReadOnly Property Item(ByVal index As Integer) As InsertionSet
Get
Return CType(List.Item(index - 1), InsertionSet)
End Get
End Property
End Class
Но этот подход был таким же результат, когда я использовал ArrayList.
Я работаю над проблемой на данный момент, заменив все ссылки на InsertionSets(i)
на InsertionSets.Item(i)
в javascript - это, похоже, работает, но, конечно, включает в себя модификацию производственного кода.
Может ли кто-нибудь указать мне какие-либо указатели на тип сбора, который я должен использовать здесь, или, альтернативно, как эффективно использовать свойство по умолчанию с помощью COM Interop?
Я извлек код VB.net здесь: http://pastebin.com/wx7ZR1ME, пожалуйста, дайте мне знать, если что-то важное отсутствует.
Хм, то ArrayList должно было сработать, хотя, что индексация явно неправильно, это начинается с 0. ошибка в VB.NET недостающее 'По умолчанию ', чтобы сделать его свойством по умолчанию. –