代码之家  ›  专栏  ›  技术社区  ›  camainc

如何在不硬编码URI的情况下实例化WCF DataServices客户机

  •  1
  • camainc  · 技术社区  · 16 年前

    我对WCF数据服务(OData)相当陌生,我需要知道在客户端实例化实体容器而不必硬编码URI的最佳方法。似乎MSDN上的所有示例都描述了如下实例化客户端:

    Uri uri = new Uri("http://www.someservice.svc");
    DataServiceContext svc = new DataServiceContext(uri);
    

    然而,我知道我肯定在什么地方遗漏了什么,因为这样硬编码一个服务地址没有任何意义。首先,当您从开发到测试再到QA再到生产时,当每个环境可能有不同的URI时,如何动态地更改地址?

    2 回复  |  直到 16 年前
        1
  •  4
  •   marc_s MisterSmith    16 年前

    将您的数据服务URL放入 Settings 文件还是普通的 app.config

    Uri uri = new Uri(ConfigurationManager.AppSettings["ServiceURI"]);
    DataServiceContext svc = new DataServiceContext(uri);
    

    应用程序配置 (或 web.config

    <appSettings>
      <add key="ServiceURI" value="http://www.someservice.svc" />
    </appSettings>
    

    或者从数据库配置表中获取它。。。。。或。。。。。有很多选择!

        2
  •  1
  •   Ozan HELPY    16 年前


    Uri基=application.current.host; Uri relService=new Uri(“..\someservice.svc”,System.UriKind.Relative);

    Uri service=新Uri(base,relService); DataServiceContext svc=新的DataServiceContext(服务);