Đơn giản nhất, app.config là một tệp XML có nhiều phần cấu hình được xác định trước có sẵn và hỗ trợ cho các phần cấu hình tùy chỉnh. "Phần cấu hình" là một đoạn XML với lược đồ có nghĩa là lưu trữ một số loại thông tin.
Cài đặt có thể được cấu hình bằng các phần cấu hình tích hợp như connectionStrings
hoặcappSettings
. Bạn có thể thêm các phần cấu hình tùy chỉnh của riêng bạn; đây là một chủ đề nâng cao, nhưng rất mạnh mẽ để xây dựng các tệp cấu hình được gõ mạnh.
Các ứng dụng web thường có web.config, trong khi các ứng dụng GUI / dịch vụ của Windows có tệp app.config.
Các tệp cấu hình cấp ứng dụng kế thừa các cài đặt từ các tệp cấu hình chung, ví dụ: machine.config.
Đọc từ App.Config
Chuỗi kết nối có một lược đồ được xác định trước mà bạn có thể sử dụng. Lưu ý rằng đoạn mã nhỏ này thực sự là một tệp app.config (hoặc web.config) hợp lệ:
<?xml version="1.0"?>
<configuration>
<connectionStrings>
<add name="MyKey"
connectionString="Data Source=localhost;Initial Catalog=ABC;"
providerName="System.Data.SqlClient"/>
</connectionStrings>
</configuration>
Khi bạn đã xác định app.config, bạn có thể đọc mã bằng lớp Cấu hình . Đừng bị đe dọa bởi các ví dụ MSDN dài dòng; nó thực sự khá đơn giản.
string connectionString = ConfigurationManager.ConnectionStrings["MyKey"].ConnectionString;
Viết thư cho App.Config
Thường xuyên thay đổi các tệp * .config thường không phải là một ý tưởng hay, nhưng có vẻ như bạn chỉ muốn thực hiện thiết lập một lần.
Xem: Thay đổi chuỗi kết nối & tải lại app.config trong thời gian chạy mô tả cách cập nhật connectionStrings
phần của tệp * .config khi chạy.
Lưu ý rằng lý tưởng là bạn sẽ thực hiện các thay đổi cấu hình như vậy từ một trình cài đặt đơn giản.
Vị trí của App.Config tại Runtime
H : Giả sử tôi tự thay đổi một số <value>
trong app.config, lưu nó và sau đó đóng nó. Bây giờ khi tôi đi đến thư mục bin của mình và khởi chạy tệp .exe từ đây, tại sao nó không phản ánh các thay đổi được áp dụng?
A : Khi bạn biên dịch một ứng dụng, app.config của nó được sao chép vào thư mục bin 1 với tên phù hợp với exe của bạn. Ví dụ: nếu exe của bạn được đặt tên là "test.exe", thì sẽ có một "text.exe.config" trong thư mục bin của bạn. Bạn có thể thay đổi cấu hình mà không cần biên dịch lại, nhưng bạn sẽ cần chỉnh sửa tệp cấu hình đã được tạo tại thời điểm biên dịch, không phải là app.config gốc.
1: Lưu ý rằng các tệp web.config không được di chuyển mà thay vào đó giữ nguyên vị trí tại thời điểm biên dịch và triển khai. Một ngoại lệ cho điều này là khi web.config được chuyển đổi .
Lõi .NET
Các tùy chọn cấu hình mới đã được giới thiệu với .NET Core. Cách thức hoạt động của các tệp * .config dường như không thay đổi, nhưng các nhà phát triển có thể tự do chọn các mô hình cấu hình mới, linh hoạt hơn.