2012-02-01 50 views
2

我有一个系统.__ ComObject,来了这个互操作的对象,我想用一个变量名设置值:获取动态成员和的SetValue

SetValue(fieldname) = fieldvalue; 

我还需要检查动态成员看看有什么可用的。一些成员(以Ref结尾的成员)具有子成员,因此我需要深入研究它们。

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

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

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

回答

2

使用Impromptu Interface我能够与收集动态成员:

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

然后我就可以使用一组可变成员名称:

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

大“谢谢!”致Impromptu Interface的开发者为我解答。