2008-11-13 25 views
6

phần cấu hình app.config là tốt đẹp, nhưng tôi thường cần nhiều bộ cấu hình, nhưng với sự khác biệt nhỏ. những gì tôi muốn là:Làm thế nào để làm cấu hình phân cấp trong .NET app.config

  1. Có một phần với cấu hình mặc định (cái này được tạo ra với các nhà thiết kế, và do đó có accessors tự động tạo ra mạnh mẽ, đánh máy trong lớp Cài đặt
  2. Một phần chỉ với các mục "mới" và tất cả các mục khác nhận giá trị của chúng từ phần gốc.

(lưu ý - đây cũng là điều tốt đẹp để đặt "phần khác" trong một tệp riêng biệt, nhưng đây là một vấn đề khác .)

Chỉnh sửa: ứng dụng là đồng bằng có thể thực thi (hoặc một dịch vụ) - nó không phải là một dịch vụ web. Ngoài ra, tôi biết có một "machine.config" để kế thừa từ, nhưng nó quá toàn cầu: nó cho tất cả các ứng dụng cùng nhau

Trả lời

1

Tôi nghĩ bạn sẽ phải sử dụng trình xử lý tùy chỉnh để quản lý việc này.

Phần thứ hai rất dễ dàng vì bạn có thể sử dụng thuộc tính configSource trong tệp cấu hình ban đầu để trỏ đến tệp có chứa nguồn xml.

<system.serviceModel> 
    <diagnostics> 
     <messageLogging logMalformedMessages="true" logMessagesAtServiceLevel="true" 
     logMessagesAtTransportLevel="true" /> 
    </diagnostics> 
    <bindings configSource="web.shared.bindings.config" ></bindings> 
    <client configSource="web.shared.client.config" ></client>  
</system.serviceModel> 

Đây là cách chúng tôi liên kết các phần của XML Service.ServiceModel với Cấu hình web của chúng tôi để chúng tôi có thể giữ chúng riêng biệt và dễ dàng chỉnh sửa.

Các vấn đề liên quan