我編寫了一個使用C#的基本實用程序的dll庫。但對於平臺獨立性,我想將它移植到silverlight。可能嗎?如果可能的話,那麼該怎麼做呢?如何將C#.net .dll移植到siverlight以獲得更多平臺獨立性?
或者你們有其他建議嗎?
我編寫了一個使用C#的基本實用程序的dll庫。但對於平臺獨立性,我想將它移植到silverlight。可能嗎?如果可能的話,那麼該怎麼做呢?如何將C#.net .dll移植到siverlight以獲得更多平臺獨立性?
或者你們有其他建議嗎?
如果您爲Silverlight4構建DLL,則可以從.NET項目中引用它;但不是相反的。見Sharing Silverlight Assemblies with .NET Apps。
在SL和.Net之間共享源代碼的另一種方法是使用鏈接文件。
在.net解決方案中,添加一個silverlight庫項目。
添加>現有項目>瀏覽到.net項目中的源文件,選擇它們,單擊「添加」按鈕上的向下箭頭並選擇「添加爲鏈接」。
在很多情況下,不需要修改。在存在較小差異的情況下,請在源代碼中使用構建標誌和條件。例如
#if SILVERLIGHT
#else
#endif
這對我來說很好,特別是當我想共享一個DTO庫時。
我的建議是創建不同的項目文件(對於.NET和SL)。然後將通用文件添加到每個文件中。
許多類和方法都可以在.NET和SL上使用,因此可以使這兩個項目共享相同的代碼。
這不適用於所有情況。例如,我的開源項目#SNMP使用UDP相關的類,但SL沒有任何UDP相關的東西。
我個人的選擇是限制SL應用程序的大小,並將必要的部分移動到後端WCF應用程序中。
你需要的是一個可移植類庫:http://msdn.microsoft.com/en-us/library/gg597391.aspx
這樣可以共享.Net和Silverlight和Windows Phone的項目之間的項目/ DLL。
注意,通常Silverlight模板項目已經具有爲此用法定義的標誌SILVERLIGHT。 – AnthonyWJones 2010-04-30 11:55:32
@安東尼,謝謝你的提醒。它已經有一段時間了,只是從我失敗的記憶中回答。 – 2010-04-30 11:57:08