如何在不硬编码URI的情况下实例化WCF DataServices客户端
我对WCF数据服务(OData)相当陌生,我需要知道在客户端实例化实体容器的最佳方法,而不必硬编码URI。MSDN上的所有示例似乎都描述了如下实例化客户机:如何在不硬编码URI的情况下实例化WCF DataServices客户端,wcf,wcf-client,wcf-data-services,odata,Wcf,Wcf Client,Wcf Data Services,Odata,我对WCF数据服务(OData)相当陌生,我需要知道在客户端实例化实体容器的最佳方法,而不必硬编码URI。MSDN上的所有示例似乎都描述了如下实例化客户机: Uri uri = new Uri("http://www.someservice.svc"); DataServiceContext svc = new DataServiceContext(uri); 然而,我知道我一定是遗漏了什么,因为这样硬编码一个服务地址没有任何意义。首先,当您从开发到测试再到QA再到生产时,当每个环境可能具有不
Uri uri = new Uri("http://www.someservice.svc");
DataServiceContext svc = new DataServiceContext(uri);
然而,我知道我一定是遗漏了什么,因为这样硬编码一个服务地址没有任何意义。首先,当您从开发到测试再到QA再到生产时,当每个环境可能具有不同的URI时,如何动态地更改地址
感谢您对此的深入了解。将您的数据服务URL放入您的
设置
文件中,或者干脆放入app.config
:
Uri uri = new Uri(ConfigurationManager.AppSettings["ServiceURI"]);
DataServiceContext svc = new DataServiceContext(uri);
并且在您的app.config
(或web应用的web.config
)中:
或者从数据库配置表中获取它。。。。。或。。。。。有很多选择
URI只是一个字符串-您可以从任何可能拥有的配置源获取它。将您的数据服务URL放入您的
设置文件或纯app.config
:
Uri uri = new Uri(ConfigurationManager.AppSettings["ServiceURI"]);
DataServiceContext svc = new DataServiceContext(uri);
并且在您的app.config
(或web应用的web.config
)中:
或者从数据库配置表中获取它。。。。。或。。。。。有很多选择
URI只是一个字符串-您可以从任何可能的配置源获取它。如果您正在使用Silverlight应用程序,您可以使用application.current.host访问xap的URI
然后,您可以添加相对Uri以获取服务Uri:
Uri base=application.current.host;
Uri relService=newURI(“..\someservice.svc”,System.UriKind.Relative)
Uri服务=新的Uri(基本,relService);
DataServiceContext svc=新的DataServiceContext(服务) 如果您正在使用Silverlight应用程序,则可以使用application.current.host访问xap的Uri
然后,您可以添加相对Uri以获取服务Uri:
Uri base=application.current.host;
Uri relService=newURI(“..\someservice.svc”,System.UriKind.Relative)
Uri服务=新的Uri(基本,relService);
DataServiceContext svc=新的DataServiceContext(服务) 我想到了这一点——只是把它放在AppSettings中,但我认为必须有一种更“以框架为中心”的方法来实现这一点。在接受你的答案之前,我会等一等,看看是否有其他人提出了更好的方法,但可能就是这样。我想到了——只是把它放在AppSettings中,但我认为必须有一种更“以框架为中心”的方法来实现这一点。在接受你的答案之前,我会等一等,看看是否有其他人提出了更好的方法,但可能就是这样。