2011-06-28 25 views
5

Tôi có hai tệp .config và tôi cần một số System.Configuration.Configuration là một phần hợp nhất giữa chúng?Tạo cấu hình System.Configuration.Configuration bằng cách hợp nhất hai tệp cấu hình?

Tôi có thể đọc các tệp dưới dạng XML và tạo hợp nhất mong muốn dễ dàng, nhưng sau đó là chuỗi hoặc XDocument. Tuy nhiên, System.Configuration của netnet có vẻ là một tập tin khá nghiêm ngặt, vì vậy tôi sẽ phải viết nó vào một thư mục tạm thời mà tôi muốn tránh.

Có cách nào để làm điều đó không?

Ví dụ, config1.config:

<configuration> 
    <appSettings> 
     <add key="CacheTime" value="300" /> 
    </appSettings> 
    <system.serviceModel> 
     <behaviors> 
      <endpointBehaviors> 
      <behavior name="MyBehavior"> 
       <!-- snipped --> 
      </behavior> 
      </endpointBehaviors> 
     </behaviors> 
    </system.serviceModel> 
</configuration> 

config2.config:

<configuration> 
    <system.serviceModel> 
    <client> 
      <endpoint name="MyEndpoint" address="net.tcp://...." 
      behaviorConfiguration="MyBehavior" binding="netTcpBinding" 
      contract="IMyContract"> 
      </endpoint> 
    </client> 
    </system.serviceModel> 
</configuration> 

Configuration kết quả nên sau đó có sự kết hợp của hai người này, vì vậy mà tôi có cả AppSetting và Endpoint. Bây giờ, ví dụ này chứa WCF, nhưng tôi là không phải tìm kiếm một giải pháp cụ thể WCF, vì tôi hoàn toàn cần một đối tượng System.Configuration.Configuration.

config1 và config2 chỉ là các ví dụ - kết hợp thực tế của chúng không xác định, tôi có thể có config1 và config4 hoặc config 3 và config4 hoặc config2 và config3.

+0

Xin chào Michael. Các tập tin cấu hình được phân chia? Bạn có thể đăng một ví dụ nhỏ về cả hai và kết quả bạn mong đợi không? Tôi rất vui được giúp bạn. – nick2083

+0

@nick đã thêm một ví dụ –

Trả lời

0

Nếu mục tiêu của bạn chỉ đơn giản là làm cho tệp cấu hình của bạn thêm mô-đun (và có khả năng bảo vệ quyền truy cập tệp vào các phần cụ thể), hãy xem System.Configuration.SectionInformation.ConfigSource.

+0

configSource chỉ chấp nhận một lần ghi đè đơn lẻ. Trong trường hợp này, nó sẽ không thực hiện tốt như kết hợp cấu hình thực tế là không xác định. sẽ làm rõ câu hỏi. –

+0

Gotcha. Trong trường hợp đó, tôi có thể nghĩ rằng không có cách nào để làm điều này khác hơn là rối tung với XmlDocument và viết một tập tin tạm thời để tải, như bạn đã đề cập. Xem điều này trong sự tò mò mặc dù; bạn không bao giờ biết. – drharris

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