T4MVC在控件库中使用扩展方法

时间:2011-04-06 07:59:01

标签: asp.net-mvc razor t4mvc

我写了几个剃刀助手,这些助手使用的功能包括T4MVC生成的扩展方法。 我现在想将它们移动到控件库中,以便它们可以在多个mvc应用程序中使用。 我使用的最初想法是我可以将模板的副本放入控件库,这是有效的,缺点是应用程序中使用的模板然后在同一名称空间中重新生成相同的扩展方法。 因为我正在使用一些需要ActionResult接口的扩展,所以我需要命名空间保持不变。

我想知道的是,是否有一种已知的方法来使用控件库中的扩展以及引用该库的应用程序,或者是对所需模板的更改,以便可以生成静态扩展方法或不通过设置文件中的标志? 我也想知道静态扩展是否可以包含在模板旁边的单独的cs文件中。那么我们有2个类T4Extensions和DynamicT4Extensions?

这可能会强制使用界面IT4MVCActionResult,

1 个答案:

答案 0 :(得分:2)

这与http://forums.asp.net/p/1510753/3603100.aspx类似但不完全相同。

我想知道解决方案是否可以在设置文件中添加一个新的开关来关闭这些静态方法的生成。所以,如果你知道你已经从一些引用的程序集中获取它们,那么你可以在应用程序中关闭它们。

如果您有多个不相关的库,每个人都需要使用这些方法,那么可能仍然会爆炸,因为应用程序会得到一个模糊的引用。

请注意,我们不能将这些方法设置为内部方法,因为其中一些方法需要从视图中调用,这些视图存在于不同的程序集中。

理想情况下,我宁愿避免将它们放在一个单独的文件中,因为有些用户可能会开始抱怨T4MVC会带来太多文件。

抱歉,这不是一个明确的答案,而是更多地考虑各种可能性。 :)