2009-10-13 23 views
18

Gần đây tôi đã viết một nhóm cấu hình tùy chỉnh khá lớn. Tôi rất tò mò nếu có thể di chuyển cấu hình này sang một tệp riêng biệt qua các thông tin sau:Di chuyển nhóm cấu hình tùy chỉnh sang một tệp riêng biệt

<configuration> 
    <configSections> 
     <sectionGroup name="MyCustomGroup"> 
      <section name="MyCustomSection"/> 
     </sectionGroup> 
    </configSections> 
    <MyCustomGroup file="alt.config" /> 
</configuration> 

Đây là điều tương tự với những gì bạn có thể làm với thuộc tính tệp cho appSettings. Tôi nhận ra có nhiều khả năng là cần tạo một ConfigurationPropertyAttribute cho trình xử lý phần tùy chỉnh của tôi, tuy nhiên tôi đã không thành công trong việc tìm kiếm bất kỳ ví dụ hoặc hướng nào về vấn đề này.

Trả lời

27

Theo như tôi biết, bạn không thể ra bên ngoài toàn bộ một SectionGroup (tức MyCustomGroup) sử dụng thuộc tính configSource, nhưng bạn phải xử lý này trên mục cấp (tức là MyCustomSection)

<configuration> 
    <configSections> 
     <sectionGroup name="MyCustomGroup"> 
       <section name="MyCustomSection"/> 
     </sectionGroup> 
    </configSections> 
    <MyCustomGroup>  
     <MyCustomSection configSource="externalfile.config" /> 
    </MyCustomGroup> 
</configuration> 

Các bên ngoài sau đó, tệp externalfile.config sẽ chứa cài đặt cấu hình thực tế của bạn, bắt đầu trực tiếp bằng thẻ phần tùy chỉnh của riêng bạn (không có hàng đầu <?xml....?> hoặc <configuration> hoặc bất kỳ thứ gì cần thiết):

<MyCustomSection> 
    ... your settings here...... 
</MyCustomSection> 

Marc

+1

trình như một say mê. –

+1

Bạn đã chính xác. Các nhóm phần không thể được bên ngoài như một tổng thể, nhưng các phần của nó có thể. –

+0

@marc_s - tuyệt vời, tôi đã không nhận ra đây là một câu hỏi cũ. Tôi chỉ googling và thấy đây là kết quả hàng đầu! – Liath

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