Как удалить плагины MEF во время выполнения?

У меня есть приложение на основе MEF, которое можно настраивать с помощью плагинов. Это приложение имеет несколько импортных деталей, и я хочу удалить некоторые из них во время выполнения (чтобы иметь возможность удалить .dll, который их содержит), когда пользователь решит избавиться от этого подключаемого модуля.

CompositionBatch будет делать то, что мне нужно, но для этого требуется Экземпляры ComposablePart в качестве входных параметров для метода RemovePart () , и у меня есть только простые объекты, реализующие интерфейс ISomething, или экземпляры ComposablePartDefinition в AggregateCatalog . Итак, мой вопрос:

  • Как мне найти ComposablePart или экземпляры ComposablePartDefinition в AggregateCatalog . Итак, мой вопрос:
    • Как мне найти ComposablePart или экземпляры ComposablePartDefinition в AggregateCatalog . Итак, мой вопрос:
      • Как мне найти ComposablePart экземпляр, представляющий импортированный объект, от которого я хочу избавиться?
      • Или в качестве альтернативы: как мне получить список объектов ComposablePart, принадлежащих

        Есть ли способ создать неизменяемую структуру данных дерева с оптимизацией хвостового вызова в конструкции? (И не потерять эффективность при копировании.)

6
задан Snark 22 March 2011 в 18:08
поделиться