Tôi đang đọc các bài viết, bài đăng trên diễn đàn về applicationSettings trong gần một tuần nay.Cách hợp nhất ứng dụngCài đặt của thư viện lớp vào tệp cấu hình của tệp thực thi của máy chủ
Trong hầu hết các chủ đề đã có ai đó mà dường như có một cách chính xác chỉ ra rằng các thư viện lớp không thể có tập tin cấu hình khi triển khai và applicationSettings họ cấu hình ở thiết kế phải được xác định/sáp nhập trong thực thi tập tin cấu hình .exe.config của ứng dụng lưu trữ/tiêu thụ dll.
Không nhất thiết phải đúng sự thật. Bạn có thể nhưng bạn không cần phải kết hợp chúng với cài đặt thư viện lớp trừ khi bạn muốn cung cấp cho người dùng một cách để "ghi đè" các giá trị mặc định - những giá trị được chỉ định bằng cách sử dụng mã hóa DefaultValueAttribute được mã hóa cứng trong hội đồng. Quay lại đầu trang |||||||||||||||||||||||||||||||||||||||||||||||
Vì vậy, đối với một ví dụ thực tế rất đơn giản. Hãy sử dụng VB.NET 1. Tôi đã tạo một dự án Class Library gọi là ClassLibrary. 2. Hiển thị tất cả các tệp, mở rộng MyProject, nhấp đúp vào Settings.settings. 3. Thêm một cài đặt được gọi là Tin nhắn, ứng dụng được sắp xếp có giá trị là "Hello!". 4. Tạo một tài sản trong Class1.vb (lớp tự động thêm vào)
Public Class Class1
Public Shared ReadOnly Property Message As String
Get
Return My.Settings.Message
End Get
End Property
End Class
- Tạo một dự án VB WinForms và gọi nó là WinForm.
- Thêm tham chiếu vào dự án ClassLibrary.
Thêm nút vào Form1 đã tạo và nhấp đúp vào nó. 8 Thêm một số mã vào trình xử lý Button1_Click. Nên trông như thế này.
Công Class Form1
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click MessageBox.Show(ClassLibrary.Class1.Message) End Sub
End Class
Có WinForm "Set as dự án Startup"
Bây giờ, trong khi ở tất cả mọi thứ IDE tác phẩm đẹp mắt. Chạy giải pháp và bạn sẽ nhận được Hello mong đợi! khi bạn nhấn nút. Nếu bạn đi và thay đổi cài đặt trong app.config của thư viện để nói "Tạm biệt!" và bạn chạy các giải pháp một lần nữa bạn sẽ có được một "Good bye!"
Tuy nhiên, nhấp chuột phải vào dự án WinForm và "Mở trong Explorer" và truy cập thư mục Gỡ lỗi. Chưa có tệp WinForm.exe.config nào. Hãy tạo một cách nhanh chóng. Chuyển về VS và trong khi dự án WinForm được chọn bấm để hiển thị tất cả các tệp. Mở rộng MyProject, mở Settings.settings, tạo một thiết lập (không quan trọng gì) và lưu lại. Ở đó chúng ta đi, một App.config đã được tạo ra và nếu tôi xây dựng giải pháp này, thư mục Debug sẽ chứa một WinForm.exe.config.
Nói cho tôi biết làm thế nào tôi kết hợp thiết từ thư viện lớp cấu hình
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="ClassLibrary.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<ClassLibrary.My.MySettings>
<setting name="Message" serializeAs="String">
<value>Hello!</value>
</setting>
</ClassLibrary.My.MySettings>
</applicationSettings>
</configuration>
tin nhắn của tôi vào của WinForm cấu hình
<configuration>
<configSections>
<sectionGroup name="applicationSettings" type="System.Configuration.ApplicationSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="WinForm.My.MySettings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" requirePermission="false" />
</sectionGroup>
</configSections>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
</startup>
<applicationSettings>
<WinForm.My.MySettings>
<!--<setting name="A" serializeAs="String">
<value>A</value>
</setting>-->
</WinForm.My.MySettings>
</applicationSettings>
</configuration>
vì vậy tôi có thể thay đổi các thiết lập tin nhắn của giá trị trong WinForm.exe.config đến một cái gì đó khác và ứng dụng sẽ hiển thị giá trị mới này ghi đè DefaultValueAttribute.
Bài đăng trên blog được liên kết có hai phương pháp, thứ hai trong số đó có hiệu quả đối với tôi. Trong trường hợp liên kết bị chết, chỉ cần tìm "applicationSettings configSource" để tìm thông tin liên quan. – HotN