2011-06-01 48 views
3

我從第三方公司購買了一堆C#類庫中的類。將.net 4類庫中的C#類暴露給Silverlight應用程序

我想要使用這些類並通過繼承它們來創建我的類。 我有一個.net 4 wpf應用程序的所有工作。

我想在我的silverlight應用程序中使用這些類。

我有什麼選擇,哪個是最好的選擇? 我想以這樣的方式使用它,以便我可以在每個月發佈新版本時更新第三方公司的DLL。

只需重新執行幾點:

我們有幾個選項。 1.鏈接類(作爲添加現有項目但鏈接) 2.創建接口並在WCF中作爲鏈接類共享它們,並讓所有類繼承接口 3.使用RIA服務並讓Web應用程序創建自動代碼將其公開給silverlight。

還有其他選擇嗎?如果沒有,那麼哪一個更適合我所面臨的情況呢?

感謝

+0

Silverlight的哪個版本? – pickypg 2011-06-01 20:45:09

+0

silverlight 4.0 – InfoLearner 2011-06-01 20:50:50

+0

你有庫的源代碼嗎? – slfan 2011-06-01 21:52:15

回答

2

值得一但指出,隨着Silverlight的.NET平臺航運是不一樣的一個運輸用完整的.NET框架。

這意味着即使SL使用相同的IL,第三方程序集也幾乎不會與Silverlight兼容。如果第三方程序集僅引用mscorlib或System.dll,則可將其編譯爲SL和WPF之間的跨平臺程序集。

但是,在所有其他情況下,SL和完整.NET平臺之間的差異將阻止程序集與Silverlight兼容。

如果第三方軟件與UI或網絡有任何關係,如果該軟件使用Windows API ...等,它將無法在Silverlight應用程序中工作。

這就是爲什麼一個通用.NET程序集不能從SL項目中引用的原因。但是,在一般的.NET項目中可能會使用SL程序集。

但是,如果程序集執行計算和異步任務,則可以在服務器上執行它,並將結果發送回Silverlight應用程序。

例如,如果類庫生成報告,文件或圖像,這是一個不錯的選擇。

第三方庫是做什麼的?

+0

第三方包含一些功能,執行復雜的驗證檢查(和100多這些),如果輸入是classA和類A是他們的部分庫。所以我想在Silverlight中繼承classA並調用這些方法。 – InfoLearner 2011-06-01 21:04:27

+1

你在哪裏打電話給圖書館?我覺得你唯一可行的選擇是通過遠程處理調用(例如WCF)在服務器上調用它。 – Eilistraee 2011-06-02 12:34:55

1

如果您沒有源代碼,則無法在Silverlight應用程序中引用類庫(正如您可能已經知道的那樣)。在Silverlight中不使用標準.NET庫而無需重新編譯,因爲Silverlight是不同的框架和不同的CLR。

您可以使用服務器上的庫並創建一些服務來訪問該功能。

我不認爲有任何其他方式可以實現您的目標,除非您獲得可以放入名爲Shared的目錄的源代碼。然後它將被複制到Silverlight應用程序並在Silverlight中編譯。