В качестве фона, у меня есть .net <-> COM object bridge, который использует VB.net как посредника, с большим количеством отражений, чтобы выполнить эту работу.Использование CallByName для установки свойства Item (x)
Я бежал в препятствие, где я нуждающегося использовать CallByName(), чтобы установить довольно стандартное свойство, которое определяется как
Public Default Property Item (
index As Integer
) As String
Get
Set
, которые обычно называют .Object(1) = "new value"
, однако код моста на данный момент пытается получить .Object (1) в качестве объекта, тогда вызовите Set на нем, используя CallByName() (который явно не работает).
С другими коллекциями я с радостью могу использовать CallByName(), чтобы делать вызовы методов .Clear()
и .Add("new value")
, но это свойство не имеет этих методов и, кроме того, я хотел бы решить его для более общего подхода, чтобы код с другой стороны моста можно напрямую позвонить .Object
.
Возможно ли кто-нибудь предложить способ установки свойства массива напрямую с помощью CallByName() или, возможно, предложить альтернативную функцию отражения, которая может быть вызвана для достижения этого?