2014-04-01 16 views
11

Tôi có hai dự án trong giải pháp của mình, ví dụ này tôi sẽ gọi cho chúng là dự án A và B.Truy cập các thuộc tính app.config khác của dự án?

Tham chiếu dự án B. A. Dự án B có thể truy cập thuộc tính app.config của dự án A không?

tôi muốn truy cập vào một ứng dụng chuỗi chìa khóa trong app.config của A.

string tfsUri = ConfigurationManager.AppSettings["TfsUri"]; 

Trả lời

13

Đó là nói chung không phải là một ý tưởng tốt, khi bạn giới thiệu phụ thuộc cứng giữa các dự án. Vì vậy, nếu bạn có thể sao chép-dán giá trị cấu hình, điều đó sẽ làm cho các dự án của bạn độc lập (tuy nhiên, điều này giới thiệu sao chép của giá trị cấu hình).

Bạn cũng có thể tự động hóa điều này, để khi bạn xây dựng một dự án, phụ thuộc cấu hình sẽ tự động được giải quyết.

Có thể nói điều này, có các tùy chọn khác và trong mỗi trường hợp, bạn có thể thích sử dụng thứ gì đó khác. lựa chọn khác của bạn là:

+0

nhờ cho câu trả lời toàn diện này! – Adrian

-5

Bạn không thể truy nhập các thuộc tính trong Project A từ Dự án B mà không có cùng giá trị trong tệp cấu hình Project A.

2
 var path = @"C:\Users\Stephen\source\repos\SensurityConfigurationTool\Configuration.UI\App.config"; 
     string directory = Path.GetDirectoryName(path); 
     var pathRoot = Path.GetPathRoot(directory); 
     string file = Path.GetFileName(path); 


     ExeConfigurationFileMap fileMap = new ExeConfigurationFileMap 
     { 
      ExeConfigFilename = Path.Combine(Path.GetFullPath(directory + "\\" + file)) 
     }; 

     System.Configuration.Configuration config = ConfigurationManager.OpenMappedExeConfiguration(fileMap, ConfigurationUserLevel.None); 

Bạn về cơ bản có đường dẫn tương đối, sau đó chuyển đổi này vào một đường dẫn tuyệt đối

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