2011-02-23 61 views
1

我一直在閱讀文章: http://www.codeproject.com/KB/silverlight/MEFDynamicLoading.aspx 它描述瞭如何使用MEF動態下載XAP。它聲明共享庫應該被引用,並將copy local設置爲false。 如果'主機'xap使它們也被複制本地設置爲true,那麼這很好用,但是這不是我想要支持的場景。 我的應用程序具有相當於某種樹結構的類型。對於同一級別的項目,經常(但不總是)共享較大(可能高達1MB)的依賴關係。 我想要的只是在需要時加載這些依賴關係。顯而易見的事情只是將本地複製設置爲真,但我希望確保依賴項僅下載一次。即使用戶然後導航到需要依賴關係的應用程序的其他區域。使用MEF的動態/按需加載XAP依賴關係?

作爲最後幾點: 我希望能夠提前加載這些依賴關係。即當我知道應用程序沒有做任何其他值得的事情時。 我還將使用http://www.wintellect.com/CS/blogs/jlikness/archive/2010/05/25/silverlight-out-of-browser-dynamic-modules-in-offline-mode.aspx中描述的脫機目錄,以確保它在瀏覽器之外按預期工作。

回答

1

如果您不希望在主XAP中擁有本地引用,那麼要真正做到這一點,唯一的方法就是打開清單並自行解析並且不使用部署目錄。您將需要基本上使用我在脫機目錄中公開的方法,並保存已加載的引用的字典。然後,您可以複製本地的所有內容,並且代碼將檢查並只加載引用的程序集,如果它尚未加載。