これは、現在実行中のアプリの構成ファイルを開き、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>