T4MVC Использовать методы расширения в библиотеке управления - PullRequest
5 голосов
/ 06 апреля 2011

Я написал несколько помощников по бритве, и эти помощники используют функции, которые включают методы расширения, сгенерированные T4MVC. Теперь я хочу переместить их в управляющую библиотеку, чтобы их можно было использовать в нескольких приложениях mvc. Первоначальная идея, которую я использовал, заключается в том, что я могу поместить копию шаблона в управляющую библиотеку, и это работает, недостатком является то, что шаблон, используемый в приложении, затем восстанавливает те же методы расширения в том же пространстве имен. Поскольку я использую некоторые расширения, которым требуется интерфейс для ActionResult, мне нужно, чтобы пространство имен оставалось прежним.

Интересно, есть ли известный способ использования расширений в управляющей библиотеке, а также в приложении, которое ссылается на библиотеку, или изменение шаблона, необходимое для генерирования статических методов расширения? или нет через флаг в файле настроек? Мне также интересно, могут ли статические расширения быть включены в отдельный файл cs, который расположен рядом с шаблоном. Так что у нас есть 2 класса T4Extensions и DynamicT4Extensions?

Это может привести к использованию интерфейса IT4MVCActionResult, хотя,

1 Ответ

2 голосов
/ 07 апреля 2011

Это похоже, но не совсем то же самое, что и http://forums.asp.net/p/1510753/3603100.aspx.

Интересно, может ли быть решение добавить новый переключатель в файл настроек, который бы отключил генерацию этих статических методов.Поэтому, если вы знаете, что вы уже получаете их из какой-либо сборки, на которую вы ссылаетесь, вы отключите их в приложении.

Хотя это может все еще взорваться, если у вас есть несколько несвязанных библиотек, каждая из которых должна использовать методы, поскольку приложение получило бы неоднозначную ссылку.

Обратите внимание, что мы не можем сделать методы внутренними, поскольку некоторые из них необходимо вызывать из представлений, которые живут в разных сборках.

И в идеале, я бы предпочел не включать их в отдельный файл, так как некоторые пользователи могут начать жаловаться на то, что T4MVC вводит слишком много файлов.

Извините, на самом деле нет четкого ответа, но больше обдумыватьвозможности.:)

...