2009-06-26 192 views
1

我有一個Silverlight項目,其中由於應用程序的大小和複雜性,功能在多個Silverlight庫中分離。我在解決從網站項目生成的RIA域服務的最佳解耦方法時遇到問題。我需要能夠訪問其他庫中的數據,因爲它們將根據需要動態加載到主Silverlight應用程序中。Silverlight 3 Ria服務參考

回答

1

我最終將Visual Studio生成的代碼放在主Silverlight應用程序的Generated_Code目錄中,並創建了多個Silverlight庫來分隔Ria DomainContext,認證服務,實體以及我們寫過的其他域服務。然後我提取了DomainContext的接口等,並將它們放在它們自己的庫中。使用Microsoft的Unitylight for Silverlight,我可以將所有模塊與主項目分離。我所有的模塊現在都使用這些接口。在主應用程序中有一個IoC容器,我註冊了實現接口的所有類,並在實例化時將它們注入到頁面中。畢竟,這並非完全契合。唯一要記住的是將EnableClientAccess屬性留在服務器中的域服務類上,但從主Silverlight應用程序中刪除ASP.Net服務器項目鏈接。我讀到他們計劃在Ria services/Silverlight 3的最終版本中使這更容易,因爲其他人抱怨當前設置產生的緊密耦合。