2010-06-17 59 views
0

簡單的問題。從MEF加載的XAP訪問嵌入式資源

所以MEF不支持導入或導出寬鬆的文件(如XML文件)等

但是,它至少應該支持嵌入式資源的權利?

我目前有一個silverlight應用程序,可以動態加載xaps。這些動態加載xaps各有連接作爲嵌入資源通過這看起來是這樣的一個實例方法入店一個XML文件...

public XDocument MenuStructure 
    { 
     get 
     { 
      return XDocument.Load("myFile.xml"); 
     } 
    } 

但是,此屬性有消息稱進口「找不到文件「失敗後, myFile.xml「在應用程序xap包中。」

我不確定問題是我現在是如何訪問文件,現在它的BuildAction設置爲EmbeddedResource或不。

任何想法?

感謝

回答

1

您是正確的,MEF不支持從輔助下載的XAP加載資源。但是,您可以執行嵌入資源(嵌入程序集而不是XAP),但是您訪問它的方式不會從嵌入資源中提取文件。

對於BuildAction EmbeddedResource,您將需要從Assembly.GetManifestResourceStream(...)(http://msdn.microsoft.com/en-us/library/xc4235zt.aspx)獲取流。 對於BuildAction資源,您將需要構建一個合適的包uri(請參閱資源文件包URI - 參考彙編http://msdn.microsoft.com/en-us/library/aa970069(VS.85).aspx)並傳遞給Application.GetResourceStream(實際上我不完全確定此方法是否適用於動態加載的XAPs) 。