Инъекция зависимостей .Net в отладочную сборку с использованием nant - PullRequest
1 голос
/ 26 мая 2009

У меня есть относительно небольшое приложение, которое я создаю с использованием vb.net 2.0, и nant. Это приложение, которое вызывает внешний exe-файл для создания некоторых выходных файлов, а затем обрабатывает эти выходные файлы.

Я создал интерфейс для exe, который создал реализацию заглушки и реальную реализацию, и я хотел бы иметь возможность использовать nant для создания сборки приложения DEBUG, которая вызывает заглушку. или создайте PROD-сборку приложения, которая будет использовать правильную реализацию.

Как мне этого добиться?

Кроме того, у меня нет возможности обновиться до более новой версии .net, просто чтобы вы знали:)

Спасибо! Mark

Ответы [ 2 ]

3 голосов
/ 26 мая 2009

Задумывались ли вы об использовании директивы препроцессора #if DEBUG? Вы можете сделать что-то вроде следующего:

object myDependency;
#if DEBUG
myDependency = new Stub();
#else
myDependency = new Actual();
#endif

Просто мысль, но если это относительно небольшое приложение, это хорошее, простое решение, которое не требует особых хлопот. Когда вы создаете свой профиль отладки, опция компилятора DEBUG устанавливается автоматически. Когда вы создаете свой профиль Release, опция компилятора DEBUG отсутствует. Я бы сказал, что в любом другом приложении, кроме простого приложения, используется среда IoC, например, Ninject. Это красиво и просто, легко ... должно хорошо работать для небольших приложений.

0 голосов
/ 26 мая 2009

Существует множество DI-фреймворков, и скоро появятся новые. Однако ни один из них (из тех, что я знаю) не является «инструментом сборки». Если вам нужно что-то быстрое, что-то вроде Funq (1) будет хорошо или ProS (2), когда это будет сделано

Вы могли бы хотеть прочитать блуд Даниэля Каззулино на Funq (3), где он показывает несколько DI

Я бы связался выше, но мне пока не разрешено

...