Правильный способ выставить сторонний визуальный контроль в MEF - PullRequest
1 голос
/ 25 октября 2010

Как правильно это сделать? Допустим, у нас есть сторонняя библиотека в нашем проекте, и нам нужно предоставить доступ к некоторым элементам управления, которые запечатаны. Новые виджеты будут создаваться и добавляться в приложение с использованием MEF, и они должны иметь возможность импортировать некоторые элементы управления из основного приложения. Так как же правильно экспортировать эти элементы управления?

Ответы [ 2 ]

0 голосов
/ 26 октября 2010

Если вы не можете изменить исходный класс (например, ThirdPartyComponent), то вы можете выполнить экспорт через свойство другого класса (например, ThirdPartyComponentExporter):

public class ThirdPartyComponentExporter
{
   [Export(typeof(ThirdPartyComponent))]
   public ThirdPartyComponent Foo
   {
      get
      {
         return new ThirdPartyComponent();
      }
   }
}

Для визуальных элементов управления вывозможно, придется использовать CreationPolicy.NonShared для предотвращения повторного использования MEF одного и того же экземпляра в разных местах.

0 голосов
/ 26 октября 2010

Как насчет упаковки сторонних элементов управления в классы "export" и последующего доступа к этому элементу управления через оболочку?

...