2008-08-21 27 views
14

Tôi đang thử đơn vị thử nghiệm một ConfigurationSection tùy chỉnh tôi đã viết, và tôi muốn tải một số cấu hình XML tùy ý vào một System.Configuration.Configuration cho mỗi bài kiểm tra (thay vì đặt cấu hình thử nghiệm xml trong tệp Tests.dll.config . đó là, tôi muốn làm một cái gì đó như thế này:Có cách nào để có được một cá thể System.Configuration.Configuration dựa trên xml tùy ý không?

Configuration testConfig = new Configuration("<?xml version=\"1.0\"?><configuration>...</configuration>"); 
MyCustomConfigSection section = testConfig.GetSection("mycustomconfigsection"); 
Assert.That(section != null); 

Tuy nhiên, có vẻ như ConfigurationManager sẽ chỉ cung cấp cho bạn trường hợp cấu hình có liên quan đến một tập tin EXE hoặc một máy cấu hình có cách nào để. tải XML tùy ý vào một cá thể Cấu hình?

Trả lời

15

Có thực sự là một cách tôi đã phát hiện ra ....

Bạn cần phải xác định một lớp mới kế thừa từ phần cấu hình ban đầu của bạn như sau:

public class MyXmlCustomConfigSection : MyCustomConfigSection 
{ 
    public MyXmlCustomConfigSection (string configXml) 
    { 
     XmlTextReader reader = new XmlTextReader(new StringReader(configXml)); 
     DeserializeSection(reader); 
    } 
} 


Sau đó bạn có thể nhanh chóng đối tượng ConfigurationSection của bạn như sau:

string configXml = "<?xml version=\"1.0\"?><configuration>...</configuration>"; 
MyCustomConfigSection config = new MyXmlCustomConfigSection(configXml); 

Hy vọng nó sẽ giúp ai đó :-)

+0

đạo cụ để thực sự trả lời câu hỏi của anh ấy. –

0

Nhìn vào các thành viên của lớp, tôi muốn nói câu trả lời có lẽ là không * Tôi không chắc tại sao bạn lại muốn kiến để làm điều này anyway, hơn là tạo tập tin cấu hình XML của riêng bạn.

* Không, không bao gồm các đoạn phản chiếu lộn xộn

1

Tôi nghĩ điều bạn đang tìm kiếm là Trình quản lý cấu hình. OpenMappedExeConfiguration

Nó cho phép bạn mở một tập tin cấu hình mà bạn chỉ định với một đường dẫn tập tin (bọc bên trong một ExeConfigurationFileMap)

Nếu những gì các poster khác nói là đúng, và bạn không muốn tạo ra một hoàn toàn mới Tệp XML để thử nghiệm, sau đó tôi khuyên bạn nên đặt các chỉnh sửa Cấu hình của bạn trong chính phương pháp Kiểm tra, sau đó chạy các thử nghiệm của bạn dựa trên dữ liệu cấu hình mới được thay đổi.

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