但是,这个文件包含在xap文件中,而不是在部署应用程序时可以轻松更改的内容.有没有另一种方法从Silverlight应用程序中引用wcf服务?或者如何更改xap文件中的ServiceReferences.ClIEntConfig?
解决方法 可能有更好的方法,我可以使用,但这适用于我,它是灵活的.在Web应用程序的Web.config中,在AppSettings中添加一个变量并存储基本URL,请注意,我没有存储SVC文件的位置,稍后我将附加.这是因为我有多个SVC,我通常指向.你可以选择不同的做法.
<appSettings> <add key="ServiceURI" value="http://localhost:64457/"/> </appSettings>
在我的Web应用程序的Web页面中,添加一个名为InitParms的参数,这样可以添加一个键值对(由逗号分隔,由XAP文件读取)
<div ID="silverlightControlHost"> <object data="data:application/x-silverlight," type="application/x-silverlight-2" wIDth="100%" height="100%" ID="Xaml1" > <param name="InitParams" value="ServiceURI=<%= ConfigurationManager.AppSettings("ServiceURI") %>" />
在Silverlight App.xaml.vb中,将所有的InitParms加载到资源或者你想要的地方
Private Sub Application_Startup(ByVal o As Object,ByVal e As StartupEventArgs) Handles Me.Startup If e.InitParams IsNot nothing Then For Each k As Generic.keyvaluePair(Of String,String) In e.InitParams Me.Resources.Add(k.Key,k.Value) Next End If
然后在任何我的XAML文件中,我可以使用配置的URI初始化服务,我有一个这样的方法
Private Sub InitializeService() Dim uri As String = App.Current.Resources("ServiceURI") If uri Is nothing OrElse uri = String.Empty Then 'if there is no value added in the web.config,I can fallback to default values _clIEnt = New ServiceClIEnt Else 'Notice I hardcoded the location of the SVC files in the clIEnt and append there here,you may choose not to do this Dim uri_withservice As String = uri & "svc/secure/Service.svc" _clIEnt = New ServiceClIEnt("CustomBinding_Service",New EndpointAddress(uri_withservice)) End IfEnd Sub总结
以上是内存溢出为你收集整理的wcf – Silverlight:当放置在xap中时如何设置ServiceReferences.ClientConfig全部内容,希望文章能够帮你解决wcf – Silverlight:当放置在xap中时如何设置ServiceReferences.ClientConfig所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)