0

プログラムでWCFの動作を変更しようとしています(つまり、構成ファイルセクションを変更します)。

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

serviceMetadataセクションを取得した後、セクションを更新/変更してファイルを保存できるようにしたいです。

セクションを読み込んだ後の進め方について何かアイデアはありますか?キャストして値を変更できるオブジェクトを見つけることができません。

4

1 に答える 1

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>
于 2012-12-06T21:42:24.537 に答える