Как добавить поддержку MEF в пользовательский элемент управления Silverlight - PullRequest
0 голосов
/ 20 июля 2011

Я хочу сделать свой настраиваемый элемент управления расширяемым (т. Е. Мастер / деталь, поиск и т. Д.). Каждый экземпляр пользовательского элемента управления запрашивает его функциональность через свойство.

(в этом случае будут загружены дополнительные компоненты для поддержки master / detail).

Возможно ли использовать MEF для этого?

Приветствия

1 Ответ

0 голосов
/ 20 июля 2011

Вы можете использовать mef, но это может быть немного неуклюжим в зависимости от вашего сценария.

Из вашего описания кажется, что экземпляр пользовательского элемента управления - это тот, кто решает, какие дополнительные компоненты загрузить.

Mef обычно используется, когда цель thing не знает точно, чего она хочет, только то, что она хочет, реализует некоторый интерфейс (или контракт, если быть более точным).

Например, ваш пользовательский элемент управления может знать, что он хочет выполнить поиск, но не совсем так.Тогда у вас будет интерфейс для поиска, возможно, с одним методом поиска (строка).У вашего элемента управления будет свойство этого типа, и mef заполнит его экземпляром, который mef обнаружил в какой-либо другой сборке.

Вы можете определить контракты для различных "областей" вашего элемента управления и заполнить их.однако, для этого уже есть рамки, такие как Prism , на которые вы должны взглянуть, по крайней мере, для справки.

Я предлагаю просмотреть документы MSDN для MEF. и посмотрите, применимы ли они к вашему сценарию

...