我正在尝试以编程方式修改 WCF 行为(即修改配置文件部分)。
BehaviorsSection bhsSection = (BehaviorsSection)this.configFile.GetSection("system.serviceModel/behaviors");
检索该部分后,我希望能够更新/修改该serviceMetadata
部分并保存文件。
加载该部分后如何继续操作的任何想法?我无法找到可以投射和更改值的对象。
我正在尝试以编程方式修改 WCF 行为(即修改配置文件部分)。
BehaviorsSection bhsSection = (BehaviorsSection)this.configFile.GetSection("system.serviceModel/behaviors");
检索该部分后,我希望能够更新/修改该serviceMetadata
部分并保存文件。
加载该部分后如何继续操作的任何想法?我无法找到可以投射和更改值的对象。
下面是一些示例代码,用于打开当前正在执行的应用程序的配置文件并修改 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>