2012-02-01 47 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的開發者爲我解答。