C# 创建一个没有配置文件的WCF客户端

C# 创建一个没有配置文件的WCF客户端,c#,wcf,app-config,C#,Wcf,App Config,请帮我做这件事 如何在不在app.config中指定客户端配置的情况下创建WCF客户端 我看到了这个链接 但是在这里,您需要按属性指定配置属性。 我们是否可以将app.config配置作为一个字符串使用,并分配给一个类并完成它 像 方法返回字符串形式的完整配置,如下所示 终点: <endpoint address="http://localhost:61144/Sampler.svc" binding="basicHttpBinding" bindingConfigurati

请帮我做这件事

如何在不在app.config中指定客户端配置的情况下创建WCF客户端

我看到了这个链接

但是在这里,您需要按属性指定配置属性。 我们是否可以将app.config配置作为一个字符串使用,并分配给一个类并完成它

方法返回字符串形式的完整配置,如下所示

终点:

<endpoint address="http://localhost:61144/Sampler.svc" binding="basicHttpBinding"
      bindingConfiguration="BasicHttpBinding_Iervice" contract="IService"
      name="BasicHttpBinding_IService" />
提前感谢

我们是否可以将app.config配置作为单一配置使用 字符串并分配给类,然后使用

没有

如果服务是使用所有绑定参数的默认值创建的,则可以如下方式使用它:

using System.ServiceModel;

var factory = new ChannelFactory<IMyServiceInterface>(
    new BasicHttpBinding(), <-- or whatever binding your service uses
    new EndpointAddress("http://MyServiceUrl"));

var proxy = factory.CreateChannel();
使用System.ServiceModel;
var工厂=新工厂(

new BasicHttpBinding(),是的,您可以在这里阅读一篇文章,加载您为客户端提供的配置文件

可能与我所说的在单个字符串中获取所有配置重复,我的意思是在一个字符串中仅获取端点配置,而不是整个配置文件。我在一个项目中工作过,该项目将配置的这些部分(如端点和绑定)保存在不同的表中,并且可以在运行时获取它们并创建客户端。我现在无法获取该代码。。。。感谢@hugh的更新,但是,我只能从XML中获取配置点,并使用该方法从中创建配置对象。不过,如何从中创建wcf代理还没有提到。@sriharshaKB您为什么要这样做?我们在上一个项目中这样做的原因是,如果我们可以更改wcf服务器,我们可以使用t重新启动web应用程序。(因为配置更改会重新启动网站)。其次,我们没有权限在此处触摸app.config。另一方面,我们可以在DB中添加/更改数据。我知道我们可以做到…这是在我们以前的项目中完成的。我只是不知道他们是如何做到的…“其次,我们没有权限在此处触摸app.config”。那么,您是说不允许您更改应用程序中您应该更改的一项内容?我会辞职。在这种情况下,配置也必须从文件中加载…这将应用于当前加载的应用程序。我希望将端点配置与DB分开,并创建一个客户端。有办法吗?
<basicHttpBinding>
    <binding name="BasicHttpBinding_IService" closeTimeout="00:01:00"
        openTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00"
        allowCookies="false" bypassProxyOnLocal="false" hostNameComparisonMode="StrongWildcard"
        maxBufferSize="65536" maxBufferPoolSize="524288" maxReceivedMessageSize="65536"
        messageEncoding="Text" textEncoding="utf-8" transferMode="Buffered"
        useDefaultWebProxy="true">
      <readerQuotas maxDepth="32" maxStringContentLength="8192" maxArrayLength="16384"
          maxBytesPerRead="4096" maxNameTableCharCount="16384" />
      <security mode="None">
        <transport clientCredentialType="None" proxyCredentialType="None"
            realm="" />
        <message clientCredentialType="UserName" algorithmSuite="Default" />
      </security>
    </binding>
  </basicHttpBinding>
 System.Configuration.Configuration config = 
            System.Configuration.ConfigurationManager.OpenMappedExeConfiguration
            (filemap, 
             System.Configuration.ConfigurationUserLevel.None);
using System.ServiceModel;

var factory = new ChannelFactory<IMyServiceInterface>(
    new BasicHttpBinding(), <-- or whatever binding your service uses
    new EndpointAddress("http://MyServiceUrl"));

var proxy = factory.CreateChannel();