2011-11-08 42 views
1

我正在開發的Windows Phone 7項目有2個UI,以及一些常見功能的核心「引擎」。我希望我的用戶界面將對象傳遞到核心程序集中的這些常用頁面之一。傳遞WP7中程序集之間的數據/對象

目前我可以從UI組件中導航到核心部件中的頁面。但是,我的理解是每個程序集都有自己的獨立存儲,這是否正確?

如果我可以共享獨立存儲,我可以使用它,我只是不確定如何讓兩個程序集一起使用它。

最佳做法是什麼?

我試圖使用Google這樣的:「WP7傳遞組件之間對象」

更多信息:
這將是1個應用程序具有兩個組件。事情是這樣的:

CustomerUI(項目)
- MainPage.xaml中
- App.xaml中

CoreFuncs(項目)
- CustomerData.cs
- EditCustomer.xaml

SalesRepUI(項目)
- MainPage.xaml
- App.xaml

CustomerUI和SalesRepUI都將使用EditCustomer頁面和customerData對象。因此,從MainPage中CustomerData對象被實例化,然後用戶可以點擊'Edit User'來導航到常見的EditCustomer.xaml頁面。我們想要傳入已經實例化的CustomerData對象。 (爲了討論的目的...)

+0

對不起,對不起,我找到了我想要的,我在想太難。 'PhoneApplicationService.Current.State [「keyName」] = object;'正是我想要的。 不知道它是否是最好的方式,但對我來說,它的工作原理。只需扔我的設置類或任何在那裏,並在page.xaml代碼捕捉到另一邊。 –

回答

1

對不起,對不起,我找到了我想要的,我在想太難。 PhoneApplicationService.Current.State["keyName"] = object;正是我想要的。不知道它是否是最好的方式,但對我而言,它是有效的。只需扔我的設置類或任何在那裏,並在page.xaml代碼捕捉到另一邊。

1

據我所知,每個應用程序有一個隔離存儲器,而不是每個程序集。所以你可以嘗試通過它傳遞你的對象,如果你喜歡。

1

這取決於這兩個單獨的應用程序或兩個程序集?

隔離存儲在正在運行的應用程序周圍被隔離。這意味着每個應用都有自己的存儲空間,無法從其他應用訪問。兩個應用程序之間共享數據的唯一方法是:

  1. 一個WebService /或TCP服務7.5:你會從一個應用程序上傳數據和下載數據到一個單獨的應用程序。

  2. 用戶執行的任務:複製和粘貼/發送電子郵件

但是,如果這僅僅是一個應用程序,你將能夠只通過讀取和寫入的文件訪問組件之間的獨立存儲。唯一需要注意的是文件鎖定,確保在嘗試從單獨的dll /程序集中讀取它們之前關閉文件。

+0

嗯......好的,那太棒了。 但是,我正在使用App.xaml.cs類來實現獨立存儲,我得到了像這樣的返回值(Application.Current as UIAppName.App).ValueName;'。 UIAppName將引用CoreClasses異議,但CoreClasses可以從UIAppName獲取應用程序數據? –

+0

那麼,怎麼樣,我有UIApp中的MainPage.xaml,它可以從App.xaml讀取值。用戶然後在CoreFuncs程序集中導航到CommonPage.xaml。當加載MainPage.xaml時,我想將設置讀入CommonPage.xaml可以獲取的區域。我正在考慮將一個設置類添加到CoreFuncs,類似於CoreFuncs.appSettings,CommonPage可以寫入。我在正確的軌道上嗎? –

+0

如果創建您自己的設置類並將其序列化/反序列化爲獨立存儲。鏈接在序列化:http://support.microsoft.com/kb/815813鏈接在孤立的存儲:http://www.windowsphonegeek.com/tips/all-about-wp7-isolated-storage-read-and-save- text-files你可以在每個程序集中複製這個類......或者你可以創建一個由兩個程序集引用的類庫 – JonAlb