18

カスタム定義の ConfigurationSection および Config 要素に対応するカスタム構成ファイルがあるとします。これらの設定クラスはライブラリに保存されます。

構成ファイルは次のようになります

<?xml version="1.0" encoding="utf-8" ?>
<Schoool Name="RT">
  <Student></Student>
</Schoool>

コードからこの構成ファイルをプログラムで読み込んで使用するにはどうすればよいですか?

生の XML 処理を使用したくありませんが、既に定義されている構成クラスを活用します。

4

4 に答える 4

17

要件に合わせて調整する必要がありますが、これを行うために私のプロジェクトの 1 つで使用するコードを次に示します。

var fileMap = new ConfigurationFileMap("pathtoconfigfile");
var configuration = ConfigurationManager.OpenMappedMachineConfiguration(fileMap);
var sectionGroup = configuration.GetSectionGroup("applicationSettings"); // This is the section group name, change to your needs
var section = (ClientSettingsSection)sectionGroup.Sections.Get("MyTarget.Namespace.Properties.Settings"); // This is the section name, change to your needs
var setting = section.Settings.Get("SettingName"); // This is the setting name, change to your needs
return setting.Value.ValueXml.InnerText;

有効な .net 構成ファイルを読み取っていることに注意してください。このコードを使用して、DLL から EXE の構成ファイルを読み取ります。これが質問で提供した設定ファイルの例で機能するかどうかはわかりませんが、良いスタートになるはずです。

于 2011-08-29T09:48:17.610 に答える
8

CodeProject の .NET 2.0 構成に関する Jon Rista の 3 部構成のシリーズをご覧ください。

強くお勧めし、よく書かれており、非常に役に立ちます!

XML フラグメントを実際にロードすることはできません。ロードできるは、app.config のように見える完全な個別の構成ファイルです。

独自のカスタム構成セクションを作成して設計する場合は、CodePlex の構成セクション デザイナーも確認する必要があります。これは、構成セクションを視覚的に設計し、必要な配管コードをすべて生成できるようにする Visual Studio アドインです。

于 2009-06-26T15:49:21.297 に答える
2

このconfigSource属性を使用すると、任意の構成要素を別のファイルに移動できます。メインの app.config では、次のようにします。

<configuration>
  <configSections>
    <add name="schools" type="..." />
  </configSections>

  <schools configSource="schools.config />
</configuration>
于 2009-06-26T15:54:37.910 に答える