2013-02-20 38 views
1

我想在DXL中編寫一個循環,以讀取由名爲「req」的對象鏈接的每個對象的內容。如何迭代DXL中的傳出鏈接的目標對象,在以前未加載的模塊中

天真的解決方案,ommitting REQ的初始化,會是這樣:

Object req 
Object parent 
Link baselink 

for baseLink in req -> "*" do{ 
     parent = target(baseLink) 
     ... 
} 

這不起作用,除非所有這些地方「父」對象存在的模塊都已經打開。對於任何仍未打開的,「父」變量只會收到一個空值。

鑑於這種情況,我想要一種以編程方式打開它們的方式。

的DXL參考手冊的規定,只有傳入鏈接的作品(從「子」對象)一個解決方案:

ModName_ srcModRef 
for srcModRef in o<-"*" do 
    read(fullName(srcModRef), false) 

不幸的是,我無法找到送出鏈路的解決方案。在上面的例子中用「 - >」代替「< - 」失敗。我在手冊和網頁中搜索過。

我想避免打開整個鏈接模塊指向的所有鏈接,因爲這涉及到其他來源。

有沒有人知道如何以編程方式打開由對象鏈接的所有模塊? 我懷疑有沒有辦法訪問一個對象,而無需打開它所在的模塊,但那也能解決我的問題。

回答

2

這裏是您的解決方案:

Object req 
ModName_ parentModName 
Module parentMod 
Object parent 
Link baselink 

for baseLink in req -> "*" do{ 
    parentModName = target(baseLink) 
    parentMod = read(fullName(parentModName), false) 
    parent = target(baseLink) 
    ... 
    close parentMod 
} 

即使模塊沒有打開就可以得到ModName_處理,然後打開它。然後你可以得到目標對象的引用。不要忘記關閉鏈接的模塊後,完成它們以釋放資源。

希望這會有所幫助!

+0

工作!謝謝。 – 2013-02-21 13:49:23

相關問題