Truy cập Cài đặt người dùng thông qua Trình quản lý cấu hình

lập trình


Chào các cậu,

Tôi muốn đọc cài đặt từ tệp cài đặt người dùng cục bộ. Tôi đang thực hiện việc đó từ thư viện (trái ngược với ứng dụng chứa cài đặt). Đây là tệp App.Config rút gọn của tôi:

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>

Tôi có thể tạo một lớp Cấu hình:

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

nhưng tôi không chắc chắn về cách tiếp cận tốt nhất để truy cập giá trị của cài đặt Ngôn ngữ. Tôi đã lùng sục trên web không thành công nhưng tôi có cảm giác mình có thể phải tạo một lớp tùy chỉnh. Trước đây tôi đã tạo các lớp cấu hình tùy chỉnh nhưng tôi tự hỏi liệu có cách nào nhanh hơn để nhận cài đặt người dùng hay không.

Giải pháp 1

Phải không Settings.Default.[SettingNameHere]?

Xin lỗi, tôi hơi bất cẩn khi đọc câu hỏi.

Nếu tập hợp khác là loại dự án thư viện lớp, thì các phần cấu hình (phần tùy chỉnh) sẽ hiển thị các dự án sẽ “chạy”. Tôi không chắc liệu dự án thư viện dll/class có thể truy cập cài đặt người dùng từ dự án sẽ chạy hay không. Bạn có thể thử điều đó.

Nếu nó không thể truy cập được, bạn có thể sử dụng LINQ/XPath để đọc cấu hình giống như một tệp XML thông thường.

コメント

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