1

My BizTalk application requires me to add a custom behaviorExtension to my machine.config file. I install my application via MSI, via BizTalk Deployment Framework (BTDF), so I would like this to be done programmatically as well.

Now I cannot seem to find a way to either list installed behaviors not edit them.

I have the following code, but after that I'm stuck.

        // Get the machine.config file.
        Configuration machineConfig = ConfigurationManager.OpenMachineConfiguration();
        // Get the machine.config file path.
        ConfigurationFileMap configFile = new ConfigurationFileMap(machineConfig.FilePath);

        // Map the application configuration file to the machine 
        // configuration file.
        Configuration config = ConfigurationManager.OpenMappedMachineConfiguration(configFile);

        ConfigurationSectionGroup svcModel = config.SectionGroups.Get("system.serviceModel");
        ConfigurationSection extensions = svcModel.Sections.Get("extensions");

Can anyone give me some pointers on how to approach this?

Dijkgraaf
  • 11,049
  • 17
  • 42
  • 54
zurebe-pieter
  • 3,246
  • 21
  • 38

1 Answers1

1

You are almost there. Your extensions variable is of type System.ServiceModel.Configuration.ExtensionsSection, which has property BehaviorExtensions containing what you are looking for. So:

var extensions = (System.ServiceModel.Configuration.ExtensionsSection) svcModel.Sections.Get("extensions");
var behaviors = extensions.BehaviorExtensions;
Evk
  • 98,527
  • 8
  • 141
  • 191