Chúng tôi đang triển khai mô-đun plug and play cho ứng dụng của chúng tôi nơi người dùng có thể tải và dỡ bỏ thư viện lớp mong muốn khi chạy. Vì vậy, tôi đã quyết định sử dụng MEF và sao chép bóng tối của thư viện lớp.Truy cập tệp cấu hình trên miền ứng dụng
Điều ở đây là mỗi thư viện lớp có thể có các thuộc tính cấu hình khác nhau cần được người dùng đặt. Ứng dụng chính của tôi không có kiến thức về các cấu hình có trong thư viện lớp.
Bây giờ vấn đề là khi tôi cố chuyển tệp cấu hình ứng dụng được tải bằng thư viện lớp từ miền ứng dụng này sang tên miền ứng dụng khác.
Không có MEF, tôi vừa trả lại Settings.Default
từ thư viện lớp học và tôi đã sử dụng nó trong ứng dụng chính của chúng tôi để chỉnh sửa cài đặt. Với tính năng sao chép MEF và bóng tối, dường như không hoạt động vì
- Loại đối tượng cần được cả hai bên biết.
- Tôi không thể triển khai
MarshalByRefObject
trên tệp cài đặt kể từ tệp cài đặt đã được mở rộngApplicationSettingsBase
trong đó là lớp trừu tượng và C# không hỗ trợ đa kế thừa.
Hiện tại tôi đang tạo một lớp chứa tất cả các thuộc tính dưới dạng chuỗi và tạo GUI trong ứng dụng chính của tôi dựa trên nội dung lớp này.
public class ExtensionModuleConfiguration : MarshalByRefObject
{
public string Name { get; set; }
public string Value { get; set; }
public List<string> Options { get; set; }
public UIElements ToolUIElement { get; set; }
}
public enum UIElements
{
ComboBox,
TextBox
}
Tôi phải nói đây không phải là giải pháp tốt nhất. Ai đó có thể đề xuất cách tốt hơn để đặt cấu hình của thư viện lớp trong MEF?
Tôi muốn người dùng chỉnh sửa nội dung của tệp app.config của plugin DLL trong ứng dụng chính của tôi. Tôi có thể tải nó với plugin DLL. Những gì tôi muốn là chỉnh sửa nó từ ứng dụng chính –