从Interop对象获取动态成员和SetValue

本文关键字:成员 SetValue 动态 获取 Interop 对象 | 更新日期: 2023-09-27 18:22:13

我有一个作为系统出现的Interop对象__ComObject和我想使用一个变量名设置值:

SetValue(fieldname) = fieldvalue;

我还需要检查动态成员,看看有什么可用的。有些成员(以Ref结尾的成员)有子成员,所以我也需要深入到它们。

在调试中,动态成员如下所示。(对不起,我不能张贴图片)

http://www.mezzodev.com/qintegrator/download/debug1.png

http://www.mezzodev.com/qintegrator/download/debug2.png

从Interop对象获取动态成员和SetValue

使用Impromptu接口,我能够收集动态成员:

var memberNames = Impromptu.GetMemberNames(customerAdd, dynamicOnly:true); 

然后我可以使用变量成员名称设置:

string optField = "Phone";
string optValue = "818-555-1212";
Impromptu.InvokeGet(customerAdd,  optField).SetValue(optValue);

感谢Impromptu接口的开发人员为我回答了这个问题。