2010-04-11 24 views
8

Có cách nào để tìm tên (và đường dẫn) của tệp cấu hình của ứng dụng hiện tại từ bên trong thư viện lớp không?Tìm tên của tệp cấu hình hiện tại

Ví dụ: trong một ứng dụng web, điều này sẽ là web.config, trong một ứng dụng hoặc dịch vụ windows sẽ là myapp.exe.config.

Trả lời

15

Hãy thử điều này:

AppDomain.CurrentDomain.SetupInformation.ConfigurationFile 

Nếu điều đó không làm việc, thêm tài liệu tham khảo để System.Web và System.Configuration, sau đó thử này:

if(HttpRuntime.AppDomainAppVirtualPath == null) 
    return ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None).FilePath; 
else 
    return VirtualPathUtility.ToAbsolute("~/Web.config"); 
+0

Cảm ơn. Sau lần thử nghiệm đầu tiên, cách tiếp cận đầu tiên dường như hoạt động đối với các dịch vụ windows và các ứng dụng web. – M4N

+0

Tôi không bao giờ chấp nhận câu trả lời ngay lập tức (nhưng tôi sẽ làm), ví dụ: để có thể xác minh giải pháp và cho người khác cơ hội trả lời. – M4N

0

Sử dụng Configuration.FilePath:

Nhận đường dẫn vật lý đến tệp cấu hình được đại diện bởi đối tượng Cấu hình này.

+0

Vâng, nhưng sau đó bạn cần phải có một yếu tố "Cấu hình" đầu tiên ... không may là không có "Configuration.CurrentElement" hoặc bất cứ điều gì như thế ... –

+0

Làm thế nào tôi có thể đến một thể hiện của cấu hình? – M4N

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