title: Configuring .NET library from unmanaged C++
body: <p>I have a C# .NET library called Foo that produces a Foo.dll file.  It is also configurable via a .config file which looks like this:</p>
  
  <pre><code>&lt;?xml version="1.0"?&gt;
  &lt;configuration&gt;
    &lt;configSections&gt;
      &lt;sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"&gt;
        &lt;section name="Foo.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false"/&gt;
      &lt;/sectionGroup&gt;
    &lt;/configSections&gt;
    &lt;applicationSettings&gt;
      &lt;Foo.Properties.Settings&gt;
        &lt;setting name="Server" serializeAs="String"&gt;
          &lt;value&gt;localhost&lt;/value&gt;
        &lt;/setting&gt;
      &lt;/Foo.Properties.Settings&gt;
    &lt;/applicationSettings&gt;
    &lt;startup&gt;
      &lt;supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/&gt;
    &lt;/startup&gt;
  &lt;/configuration&gt;
  </code></pre>
  
  <p>What I want to do is call functions in this .NET library from an unmanaged C++ program called Bar and be able to change its configuration from the unmanaged C++ application.  I was able to call Foo functions from Bar by setting classes/interface attributes ComVisible to true in Foo.  However, <strong>I was not able to change the .config file values from the unmanaged C++ application -- Server is always "localhost"</strong>.</p>
  
  <p>Is what I'm trying to do -- configuring a .NET library from unmanaged C++ -- even possible?</p>