Có ai biết cách xử lý AddIns được tạo bằng System.AddIn hay không. Tất cả các ví dụ trực tuyến dường như cho thấy làm thế nào để dễ dàng tải và sử dụng một addin, nhưng không ai cho thấy làm thế nào để xử lý chúng một khi họ đang sống. Vấn đề của tôi là tôi tạo ra các addins trong các quy trình mới, và các quy trình này không bao giờ bị thu gom rác thải, rõ ràng là một vấn đề.Vứt bỏ AddIns được tạo bằng MAF (System.AddIn)
Dưới đây là một số mã mẫu minh họa sự cố của tôi. Giả sử rằng người dùng không bao giờ thoát khỏi ứng dụng này, nhưng thay vào đó tạo ra nhiều phiên bản của ICalculator. Các quy trình addIn này từng được xử lý như thế nào?
static void Main(string[] args)
{
string addInRoot = GetExecutingDirectory();
// Update the cache files of the pipeline segments and add-ins
string[] warnings = AddInStore.Update(addInRoot);
// search for add-ins of type ICalculator
Collection<AddInToken> tokens = AddInStore.FindAddIns(typeof(ICalculatorHost), addInRoot);
string line = Console.ReadLine();
while (true)
{
AddInToken calcToken = ChooseCalculator(tokens);
AddInProcess addInProcess = new AddInProcess();
ICalculatorHost calc = calcToken.Activate<ICalculatorHost>(addInProcess, AddInSecurityLevel.Internet);
// run the add-in
RunCalculator(calc);
}
}
Oh, một số thông tin thêm. Tôi cũng giữ một tham chiếu đến các xử lý hợp đồng trong lớp HostViewAdapter của tôi, mà vẫn không có vẻ để làm các trick. –