WCF修改配置文件

时间:2012-12-06 16:13:29

标签: wcf web-config

我试图以编程方式修改WCF行为(即修改配置文件部分)。

BehaviorsSection  bhsSection = (BehaviorsSection)this.configFile.GetSection("system.serviceModel/behaviors");

在检索该部分后,我希望能够更新/修改serviceMetadata部分并保存文件。

在我加载该部分后如何处理的任何想法?我无法找到可以投射的对象并更改值。

1 个答案:

答案 0 :(得分:1)

这是一些示例代码,用于打开当前正在执行的应用程序的配置文件并修改serviceMetadata元素。

static void FindServiceMetadata()
{
  var config = ConfigurationManager.OpenExeConfiguration(Assembly.GetEntryAssembly().Location);
  var sg = ServiceModelSectionGroup.GetSectionGroup(config);
  foreach (ServiceBehaviorElement behavior in sg.Behaviors.ServiceBehaviors)
  {
    foreach (var item in behavior)
    {
      var metadata = item as ServiceMetadataPublishingElement;
      if (metadata == null) continue;
      metadata.HttpsGetEnabled = true;
    }
  }
  config.Save();
}

这假设一个包含system.serviceModel部分的配置文件,如下所示:

 <system.serviceModel>
    <behaviors>
      <serviceBehaviors>
        <behavior name="test">
          <serviceMetadata />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>