2012-12-06 114 views
0

我試圖修改編程WCF行爲(即修改配置文件部分)。WCF修改配置文件

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

後,我找回我希望能夠更新一節/修改serviceMetadata部分並保存文件。

任何關於如何在我加載該部分後繼續的想法?我找不到可以投射並更改值的對象。

回答

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> 
+0

感謝斯科特奏效? – lihnid