我有一个作为系统出现的Interop对象__ComObject和我想使用一个变量名设置值:
SetValue(fieldname) = fieldvalue;
我还需要检查动态成员,看看有什么可用的。有些成员(以Ref结尾的成员)有子成员,所以我也需要深入到它们。
在调试中,动态成员如下所示。(对不起,我不能张贴图片)
http://www.mezzodev.com/qintegrator/download/debug1.png
http://www.mezzodev.com/qintegrator/download/debug2.png
使用Impromptu接口,我能够收集动态成员:
var memberNames = Impromptu.GetMemberNames(customerAdd, dynamicOnly:true);
然后我可以使用变量成员名称设置:
string optField = "Phone";
string optValue = "818-555-1212";
Impromptu.InvokeGet(customerAdd, optField).SetValue(optValue);
感谢Impromptu接口的开发人员为我回答了这个问题。