2009-07-30 33 views
16

Tôi đang viết C# .NET 2.0 .dll là một trình cắm vào một số Larger application. Dự án studio trực quan cho mô-đun của tôi có tệp app.config được sao chép vào MyProj.dll.config dọc theo bên MyProj.dll.Đọc dll.config (không phải app.config!) Từ một mô-đun plugin

Kế hoạch là MyProj.dll.config sẽ được chỉnh sửa sau khi .dll được triển khai. Tôi đang cố đọc cài đặt của tôi từ tệp cục bộ đã sửa đổi đó. Tôi đã thử kéo LocalFilesSettingsObject và thay đổi tên ứng dụng thành .dll của tôi như sau:

 Properties.Settings config = Properties.Settings.Default; 
     SettingsContext context = config.Context; 
     SettingsPropertyCollection properties = config.Properties; 
     SettingsProviderCollection providers = config.Providers; 
     SettingsProvider configFile = Properties.Settings.Default.Providers["LocalFileSettingsProvider"]; 
     configFile.ApplicationName = Assembly.GetExecutingAssembly().GetName().Name; 
     config.Initialize(context, properties, providers); 
     config.Reload(); 

Điều đó không có tác dụng. Tôi đang đấu tranh để quấn đầu của tôi xung quanh toàn bộ cài đặt .NET mess. Tôi muốn một công thức để hoàn thành nhiệm vụ này. Tôi cũng muốn một liên kết đến một lời giải thích rõ ràng (với các ví dụ) về cách các cài đặt được cho là hoạt động trong .NET 2.0

Trả lời

22

Bạn sẽ cần tự nạp x.dll.config (với API cấu hình). Tất cả việc xử lý tệp tự động (bao gồm cả .Settings) là tất cả về machine.config/y.exe.config/user-settings.

Để mở một tập tin cấu hình có tên là:

  • Reference System.Configuration.dll lắp ráp.
  • Sử dụng System.Configuration
  • Tạo mã như:

    Configuration GetDllConfiguration(Assembly targetAsm) { 
        var configFile = targetAsm.Location + ".config"; 
        var map = new ExeConfigurationFileMap { 
        ExeConfigFilename = configFile 
        }; 
        return ConfigurationManager.OpenMappedExeConfiguration(map, ConfigurationUserLevel.None); 
    } 
    
2

1- file app.config mở trong visual studio

2- trong thẻ "Cấu hình" thêm của bạn cấu hình trong thẻ "appSettings" như dưới đây:

<configuration> 
    <appSettings> 
     <add key="UserName" value="aaa"/> 
     <add key="Password" value="111"/> 
    </appSettings> 
</configuration> 

3 trong mã của bạn C#

var appConfig = ConfigurationManager.OpenExeConfiguration(Assembly.GetExecutingAssembly().Location); 
string userName = appConfig.AppSettings.Settings["UserName"].Value; 
string password = appConfig.AppSettings.Settings["Password"].Value; 

và đừng quên để thêm video này 2 usings cho "ConfigurationManager" và "hội"

  • sử dụng System.Configuration;
  • sử dụng System.Reflection;

nếu System.Configuration không hiển thị, bạn phải thêm tài liệu tham khảo "System.Configuration" trong tài liệu tham khảo

4 bạn có thể cập nhật các cấu hình cho các dll như dưới đây:

  • mở file "MyProj.dll.config"
  • sau đó cập nhật cấu hình của mình
+0

Cảm ơn Mohamad! Tôi đọc qua nhiều bài viết này và của bạn là bài viết duy nhất đã hoạt động! –

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