2012-05-02 72 views
3

存在ServiceReferences.ClientConfig文件,該文件包含Silverlight應用程序正在使用的WCF服務的不同設置。很好很容易,除非你設置了它們,否則你不能在沒有修改xap的情況下改變它們。是否有可能在運行時重寫silverlight應用程序資源?

我想讓這些設置可以配置得更輕鬆一些。 有幾種選擇:

  • 在web.config中添加一個專用部分,管理員可以在其中進行更改。將這些設置轉移到silverlight,然後在頁面上呈現對象。用silverlight解析,然後手動建立頻道。我寧願避免的東西。
  • 如果我們可以說silverlight應用程序不是從xap資源加載ServiceReferences.ClientConfig,而是從指定的uri加載,那將會很好。這樣我可以將這個配置沿着web.config。尼斯。雖然不可能。
  • 如果我可以替代資源流解析器,那也可以。可悲的是,它似乎也不可能。有IApplicationResourceStreamResolver,但它是內部的。
  • 也許有一種方法可以在silverlight應用程序啓動後重寫應用程序資源流?

回答

2

我想你想在運行時創建servicesclient配置文件。

如果是這種情況,那麼只需創建System.ServiceModel.BasicHttpBinding對象並分配屬性並將服務URL分配給System.ServiceModel.EndpointAddress。這個綁定對象和endpointaddress對象可以被分配給客戶端對象構造函數,並且瞧!

+0

對,這是可能的。它還需要我編寫代​​碼來存儲設置,解析它們,轉移到客戶端。但我真正想要的是重用現有的代碼 - 已經有一個配置具有我需要的所有設置,它以我想要的形式(xml)。在部署應用程序後,似乎無法對其進行更改。這就是問題的關鍵所在 - 我如何將配置存儲在xap之外,然後將其提供給silverlight。 –

相關問題