Мой вопрос прост. Для целей модульного тестирования мне нужен статически скомпилированный тип, производный от типа Exception, который известен в одном домене приложений, но неизвестен в другом.
Простое решение будет:
- Для создания подпапки в каталоге исполняемого файла приложения.
- Поместите туда сборку с некоторым производным типом Exception.
- Обновите файл app.config, добавив эту папку в путь поиска.
- Создайте новый AppDomain, но с немного другим app.config - без элемента.
Теперь основной домен приложения может легко загружать тип, поскольку его местоположение находится на пути поиска, а второй домен приложения не может - миссия выполнена.
Но этот метод требует:
- дополнительная папка
- Макетная сборка
- Файл конфигурации приложения-пустышки
Мне интересно, смогу ли я достичь своей цели проще, но без Reflection.Emit.
Спасибо.
EDIT:
Подойдет любой производный от исключения тип.
Мотивация:
У нас есть распределенное приложение, состоящее из клиентов, сервера и агентов. Есть сборки, найденные исключительно на агентах, а некоторые найдены исключительно на сервере. Сервер и агенты могут быть расширены после развертывания с новыми функциями. Дело в том, что возможно, что какое-то действие завершится неудачей с исключением, тип которого неизвестен на принимающей стороне. Я разрабатываю средство, чтобы справиться с этой ситуацией, и хочу сейчас провести его модульное тестирование. Для этого мне нужно смоделировать ситуацию, когда исключение, вызванное на удаленном сайте, имеет тип, неизвестный на принимающей стороне.