Подход к конфигурированию MEF без использования атрибутов
Подход к конфигурированию MEF без использования атрибутовМы профессиональная команда, которая на рынке работает уже более 2 лет и специализируемся исключительно на лучших продуктах.
У нас лучший товар, который вы когда-либо пробовали!
Наши контакты:
Telegram:
E-mail:
stuffmen@protonmail.com
ВНИМАНИЕ!!! В Телеграмм переходить только по ссылке, в поиске много Фейков!
Внимание! Роскомнадзор заблокировал Telegram ! Как обойти блокировку:
http://telegra.ph/Kak-obojti-blokirovku-Telegram-04-13-15
Библиотека MEF появилась относительно недавно, но быстро завоевала популярность у. Net разработчиков за простоту использования и эффективность. Она позволяет строить модульные приложения с минимальным уровнем связности частей parts приложения. Эта библиотека включает в себя не только Dependency Injection контейнер, но большой объём инфраструктуры: Net атрибутов и т. Существует версия MEF для Silverlight, которая имеет отличия от настольной версии. Об особенностях использовании MEF для Silverlight приложений мы и поговорим в этой статье. Эта функциональность особенно важна для Silverlight приложений, где децентрализация составных элементов приложения проявляется особенно ярко. При первом вызове метода SatisfyImports этого класса происходит создание глобального контейнера, который будет использоваться во всех дальнейших вызовах SatisfyImports. SatisfyImports производит композицию всех объектов, которые встречаются в текущей сборке и всех зависимых сборках то есть в рамках всего XAP файла. Объекты, инстанцированные при композиции, будут находиться в контейнере до момента уничтожения последнего, то есть до момента окончания работы программы. Существует несколько особенностей использования этого класса:. Этот класс предназначен для динамической загрузки XAP файлов, что позволяет ещё больше децентрализовать разработку, уменьшить размер главного XAP файла, увеличив скорость загрузки приложения, и пр. XAP файлы загружаются в ассинхронном режиме, и разработчик может подписаться на уведомление об окончании загрузки файла и обработать ошибки, если они существуют. Этот класс является составной частью идеи рекомпозиции повторное составление композиции из существующих и добавленных частей , осуществляя последнюю, если есть части, которые допускают рекомпозицию. Этот класс позволяет переопределить первоначальную конфигурацию приложения загрузка частей только из текущего XAP файла. В некоторых ситуация требуется создать несколько экземпляров элементов композиции. Например, если приложение допускает создание пользователем нескольких экземпляров документов элементов композиции , то обычными средствами этого не достичь. Следует воспользоваться возможностями ExportFactory. Создавая части композиции с использованием ExportFactory , разработчик берёт на себя полную ответственность за время жизни созданного экземпляра. Если экземпляры требуют освобождения памяти, то можно воспользоваться стандартным паттерном Dispose. В качестве примера, который отражает всю простоту и мощь использования MEF в Silverlight приложениях, я выбрал реализацию поддержки визуальных тем Themes для контролов приложения. Приложение должно соответствовать следующим требованиям:. Для реализации поддержки тем я обратился опубликованному проекту , который предоставляет несколько готовых наборов тем. Из этих проектов я использую xaml файлы с темами для основных контролов. Каждая тема располагается в отдельной сборке отдельного XAP файла. Сами темы хранятся как ресурсы и извлекаются по запросу. В качестве механизма доступа к темам используется класс, реализующий интерфейс IThemeLoader. Этот класс умеет извлекать требуемые ресурсы и содержит имя темы. Атрибут InheritedExport указывает на то, что все реализации интерфейса, помеченного этим атрибутом, должны экспортироваться. Для поддержки сторонних XAP файлов, я на основной форме приложения размещаю поле ввода адреса XAP файла и кнопку начала загрузки. Загрузка осуществляется с использованием DeploymentCabinet , который инициирует рекомпозицию. Как только рекомпозиция произошла, обновится список реализаций IThemeLoader и на UI отобразится новый список доступных тем. Логика работы этого кода следующая:. MEF обладает большим числом достоинств, среди которых рекомпозиция, отсутствие строго определённого места, в котором должна производиться регистрация частей композиции и т. MEF для Silverlight обладает дополнительными возможностями, которые не доступны даже в настольной версии, позволяя строить ещё более гибкие программы. Исходный код может быть загружен здесь. Автор статьи - Max Paulousky, блог - http: Please enable JavaScript to view the commentspowered by Disqus. Существует несколько особенностей использования этого класса: Классы, которые вызывают метод SatisfyImports не могут иметь атрибут \\\\\\\\\\\\\\\[Export\\\\\\\\\\\\\\\] ; Объекты инстанцируются только один раз и хранятся в контейнере; По умолчанию композиции подвергается только текущий XAP файл, что легко исправить. Кэш браузера используется в случае, когда приложение находится в состоянии offline Обязательно должен использоваться класс CompositionHost см. Приложение должно соответствовать следующим требованиям: Поддерживать темы Иметь возможность загружать сторонние XAP файлы с темами Загрузка XAP файла должна приводить к обновлению списка доступных тем рекомпозиция Выбор темы должен приводить к изменению внешнего вида контролов Поддержка тем Для реализации поддержки тем я обратился опубликованному проекту , который предоставляет несколько готовых наборов тем. Логика работы этого кода следующая: Загрузка XAP файла приводит к добавлению в каталог новой реализации IThemeLoader и к рекомпозиции свойства ThemesLoaders , которое связано с элементом ListBox на форме Если пользователь выделяет какой-либо элемент ListBox , генерируется изменение свойства Theme, что приводит к вызову метода LoadTheme Метод LoadTheme удаляет все существующие ресурсы и добавляет ресурсы для той темы, имя которой выбрал пользователь Результаты выполнения программы можно видеть здесь: Заключение MEF обладает большим числом достоинств, среди которых рекомпозиция, отсутствие строго определённого места, в котором должна производиться регистрация частей композиции и т. Ищите нас в интернетах! Subscribe to our mailing list. Украинское подразделение компании Microsoft.
Managed Extensibility Framework (MEF)
Black Opium Eau de Toilette YSL, или чем пахнет счастье
Купить закладки скорость a-PVP в Кремёнке
15.1. Знакомство с MEF
Купить закладки бошки в Тимашёвске
Managed Extensibility Framework
В аптеках продают заменитель героина
Купить закладки марки в Сычевке
Купить Скорость a-PVP в Раменское
Поиск по сайту
Подход к конфигурированию MEF без использования атрибутов
Глава 1. Введение
Managed Extensibility Framework (MEF)
Купить СК Крист Белые Сортавала
15.1. Знакомство с MEF
Применение глазных капель ирифрин и цикломед
Купить закладки марки в Карасуке
Закладки метадон в Нижнем Серги-3
Managed Extensibility Framework
Подход к конфигурированию MEF без использования атрибутов
Поиск по сайту
Закладки наркотики в Светлограде
Managed Extensibility Framework (MEF)
Смартфон Xiaomi Mi MIX 256Gb Black
Поиск по сайту
Курительные смеси россия купить
Managed Extensibility Framework (MEF)
Купить закладки спайс в Артемовске
15.1. Знакомство с MEF
Глава 1. Введение
ОТРАВЛЕНИЕ ФОСФОРОРГАНИЧЕСКИМИ ВЕЩЕСТВАМИ
Сколько весит стакан марихуаны
Managed Extensibility Framework
Поиск по сайту
Купить курительные миксы Нижнеудинск