2011-10-12 27 views
6

Tôi có một loạt tuyến đường mà tôi muốn có thể ném vào tệp Web.Config của mình. Tôi cần một trường khóa và hai giá trị cho từng phần/mục trong bộ sưu tập. Một cái gì đó dọc theo dòng này ...Mục/bộ sưu tập tùy chỉnh trong Web.Config

<routes> 
    <add 
     key="AdministrationDefault" 
     url="Administration/" 
     file="~Administration/Default.aspx" /> 

    <add 
     key="AdministrationCreateCampaign" 
     url="Administration/CreateCampaign/" 
     file="~/Administration/CreateCampaign.aspx" /> 

    <add 
     key="AdministrationLogout" 
     url="Administration/Leave/" 
     file="~/Administration/Leave.aspx" /> 
</routes> 

Điều này có thể?

Trả lời

7
+1

Liên kết cuối cùng đã giúp tôi rất nhiều. Cảm ơn – roosteronacid

2

Yes. Và không quá khó khi bạn có một khởi đầu.

Bạn sẽ cần phải tạo ra một lớp có nguồn gốc ConfigurationSection để xác định phần <routes> (và sau đó thêm một <section> đối với cấu hình để liên kết các yếu tố <routes> để loại của bạn).

Sau đó, bạn sẽ cần một loại để xác định từng phần tử của bộ sưu tập và, được gắn cờ làm mặc định, thuộc tính trên loại thứ hai của bạn cho bộ sưu tập.

Sau khi tất cả điều này được thiết lập, khi chạy bạn truy cập vào phần cấu hình của bạn như:

var myRoutes = ConfigurationManager.GetSection("routes") as RoutesConfigSection; 

trên blog của tôi có một vài bài viết về nền này: http://blog.rjcox.co.uk/category/dev/net-core/

Như đã nêu trong answer khác có cũng là phạm vi phủ sóng (tốt hơn rất nhiều so với trước đây) trên MSDN.

1

Nếu bạn không muốn tạo ra một lớp đại diện cho phần cấu hình của bạn, bạn có thể làm điều này:

var configSection = ConfigurationManager.GetSection("sectionGroup/sectionName"); 
var aValue = (configSection as dynamic)["ValueKey"]; 

Chuyển đổi sang động cho phép bạn truy cập vào các giá trị quan trọng trong configSection. Bạn có thể phải thêm một điểm ngắt và đỉnh trong configSection để xem những gì đang có và ValueKey để sử dụng.

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