У меня есть WPF MarkupExtension, которому необходимо получить доступ к ресурсам в сборке ресурсов по умолчанию. Расширение работает нормально во время выполнения, но не работает в дизайнере, поскольку расширение не может найти ресурсы по умолчанию в сборке запуска. Чтобы загрузить ResourceManager, мне нужно знать, какую сборку нужно загрузить из ресурсов.Поиск сборки запуска во время разработки в WPF
Во время выполнения я могу легко справиться с этим, передав сборку при инициализации - это работает отлично.
Однако во время разработки ни один из этих кодов запуска не запускается, поэтому разработчик бомбит и не загружает страницу. Так как я могу получить один из следующих обобщенно (без ссылок на конкретные типы приложений):
- запуска сборки приложения (т. Е МОФ EXE)
- Текущий XAML Документирование Extension Markup размещен на
Ах да, я нашел свойства контекста до и отклонил с помощью частного отражения. Но теперь, когда я думаю об этом сценарии, в первую очередь для дизайнера, поэтому проблемы с доверием не должны быть проблемой. Спасибо, я думаю, это указывает на меня в правильном направлении. –
Приведенный выше код работает в дизайнере и находит сборку запуска. Это все еще оставляет элементы управления в других сборках, но это довольно незначительно - по умолчанию расширение разметки может справиться с этим. FWIW, частный код отражения в вашем сообщении полезен, но, к сожалению, он не работает в дизайнере. Очевидно, что дизайнер работает в частичном доверии, и попытка частного рефлекса терпит неудачу. Мало того, что он полностью отменяет код - блок исключений не захватывает его. –
Странно ... для меня это не разбивает дизайнера. Во всяком случае, это просто грязное решение для привязки команд InputBinding к командам ViewModel. –