Мне интересно, знает ли кто-нибудь о любых системах перехвата методов на основе шаблонов T4?T4 Перехват шаблона
Мы начинаем писать мобильные приложения (в настоящее время с MonoTouch для IOS). У нас очень хороший базовый набор функций DI/IoC, и я бы хотел использовать это в разработке для новой платформы. Поскольку генерация кода времени исполнения Reflection.Emit не поддерживается, я надеюсь использовать T4-шаблоны для реализации функции динамического перехвата (+ TinyIoC в качестве контейнера для разрешения).
В настоящее время мы используем Castle Windsor (и намерены продолжать делать это для нашей SL и полной разработки .NET), но все специфические связи Windsor полностью инкапсулированы, поэтому, учитывая подходящее решение T4, это не должно быть трудно реализовать адаптер, который использует вместо TWS-версии вместо Windsor.
На самом деле есть проект Mono, который использует его на ходу во время выполнения:) .... Но на самом деле это не то, что я пытаюсь сделать здесь. Даже если бы я мог это сделать во время выполнения, это не хорошо, потому что платформа (MonoTouch/iOS) не позволит мне скомпилировать ее во время выполнения (без динамического кода). Я пытаюсь автоматически сгенерировать и скомпилировать код из шаблонов T4 во время сборки, чтобы получить тот же эффект от генерируемых классов среды выполнения. Мне нравится ваша последняя идея ... возможно, есть консольное приложение, которое идет скомпилированными сборками и использует CSharpCodeProvider, чтобы выплевывать прокси-классы в файл, который компилируется ...? – Jeff