【解決方法】ConfigurationManager 経由でユーザー設定にアクセスする


こんにちは、みんな、

ローカルユーザー設定ファイルから設定を読み込みたい。 私はライブラリからそれを行っています(設定が属するアプリケーションではなく)。 これは私の縮小版の App.Config ファイルです。

XML
<?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="XXX.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <userSettings>
        <XXX.Properties.Settings>
            <setting name="Language" serializeAs="String">
                <value>English (United Kingdom)</value>
            </setting>
        </XXX.Properties.Settings>
    </userSettings>
</configuration>

Configuration クラスを作成できます。

System.Configuration.Configuration userConfig = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.PerUserRoamingAndLocal);

しかし、言語設定の値にアクセスするための最良の方法がわかりません。 Web を調べても失敗しましたが、カスタム クラスを作成する必要があるかもしれないと感じています。 過去にカスタム構成クラスを作成したことがありますが、ユーザー設定をより迅速に取得する方法はないでしょうか。

解決策 1

ではない Settings.Default.[SettingNameHere]?

申し訳ありませんが、質問を読むのが少し不注意でした。

他のアセンブリがクラス ライブラリ タイプのプロジェクトである場合、構成セクション (カスタム セクション) には、「実行」されるプロジェクトが存在する必要があります。 dll/クラス ライブラリ プロジェクトが、実行されるプロジェクトからユーザー設定にもアクセスできるかどうかはわかりません。 それを試してみることができます。

アクセスできない場合は、LINQ/XPath を使用して、通常の XML ファイルと同じように構成を読み取ることができます。

コメント

タイトルとURLをコピーしました