私はthis post from Marc Gravellを読んで、app.config
-fileをDLLから読み取る方法を示しています。DLLからapp.configにアクセス
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="CodeGenerator.CodeGeneratorApp.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
</sectionGroup>
</configSections>
<userSettings>
<CodeGenerator.CodeGeneratorApp.Properties.Settings>
<setting name="CodeExtensions" serializeAs="Xml">
<value>
<CodeExtensionList>
<Extension AssemblyQualifiedName="CodeGenerator.Extensions.NamespaceTypesExtension, CodeGenerator, Culture=neutral">
<NamespaceTypesExtension />
</Extension>
...
</CodeExtensionList>
</value>
</setting>
</CodeGenerator.CodeGeneratorApp.Properties.Settings>
</userSettings>
</configuration>
私のDLLとアプリケーションが同じフォルダに配置されています
var settings = ConfigurationManager.OpenExeConfiguration("CodeGeneratorApp.exe").AppSettings.Settings;
app.config
-fileは、次のようになります。私はそのライブラリ内からuserSettings
を読み取ろうとすると、私は空のリストを取得しますそして私は、私が返されたオブジェクトのFilePath
は、アプリケーションの設定-FILに設定されていることがわかりクイックウォッチに
var settings = ConfigurationManager.OpenExeConfiguration("CodeGeneratorApp.exe").AppSettings.Settings;
を追加する場合でも、 e、それは正しく見つけられ、開かれました。
特に私が達成しようとしているのはvalue
をCodeExtensionList
にデシリアライズすることですが、ファイル内のそのセクションにアクセスする方法もわかりません。
です:
MemoryStream
とそのストリームをデシリアライズするためのXML? –私はこのようにユーザースコープの設定になるとは思わない。私はあなたが[この醜い動物](https://msdn.microsoft.com/en-us/library/ms134269(v = vs.110).aspx)が必要だと思います。 System.Configurationについて嫌いなことがたくさんあります。「これをしないでください」は、私が考えることができる唯一の良いアドバイスです。 EXEプロジェクトは、使用するクラスライブラリを構成する必要があります。 –