2010-01-21 75 views
1

本機PRISM的模塊化機制支持通過路徑加載模塊進行組裝,包含此模塊。我希望有可用性來將模塊的視圖(XAML)存儲在數據庫中,以便最終用戶可以更改和定製它們。選擇數據庫是因爲它更簡單地存儲和檢索信息,不需要重新編譯和製作二進制文件。 問題是,視圖包含XAML和代碼隱藏,我們需要分開(?)它們並單獨存儲,當我們需要它們時,我們必須提示它們並加載到模塊(使用反射或其他東西?),但我不知道如何以及如果有可能呢?擴展PRISM模塊化方法(CompositeWPF)

回答

1

我在這裏看到兩個選項。簡單的方法或困難的方式。

簡單的方法是在驅動器上安裝所有組件,並使用PRISM模塊目錄加載它們,具體取決於數據庫的設置。

困難的方法是將程序集放入數據庫,並讓模塊目錄從那裏加載程序集。您必須對程序集進行編碼,可能使用Base64,將其放入數據庫,然後從數據庫重新加載程序集。

要從數據庫記錄重新加載程序集,可以使用與DirectoryModuleCatalog相同的機制。複製該類並更改它,以便從來自數據庫的流中加載程序集,而不是從目錄中的文件加載。

+0

你建議的兩種方式只有在存儲dll的地方纔會有區別 - 在文件系統或數據庫中。在這兩種情況下,用戶都需要在源代碼中更改dll的XAML,重新編譯它並將其重新放入數據庫記錄中,而不是先前版本的dll。這要求用戶使用Visual Studio進行編輯並瞭解重新編譯的dll。爲了簡單起見,我想讓他免去這些責任。如果他只能編輯數據庫中的XAML,然後應用程序動態地將它加載(使用Xaml Reader,我想)到模塊中。 – 2010-01-21 11:54:21

+0

哦,我明白你的意思了。我假設你在應用中放置了某種配置屏幕,以允許用戶打開/關閉模塊,並且該設置存儲在某個地方,可能是數據庫。你想要更多的定製嗎? – 2010-01-21 12:09:19

+0

是的,我希望最終用戶可以更改存儲在模塊中的XAML視圖,並且不需要重新編譯dll即可應用這些更改 – 2010-01-21 12:12:46