0

我有一个仅在 Debug 中构建的控制器(使用 #if DEBUG),我用它来容纳一些我不希望在生产服务器上使用的测试方法。

我遇到的问题是,使用 T4MVC 我得到了一个基于控制器的派生类,其中所有方法都重载。一旦我尝试在发布模式下构建,基类和虚拟操作方法不再存在并且我得到构建错误。

理想情况下,我希望能够从 T4MVC 中排除控制器,但我在设置文件中看不到这样做的方法,并且这个问题的答案:T4MVC 如何排除单个文件表明它不可能。

任何人都知道这样做的方法或可以想到一个好的解决方法?

4

2 回答 2

3

在控制器上使用 T4MVC 属性

[T4MVC(false)]
public Controller ControllerToIgnore //...

为我的目的工作(排除特定控制器的生成)。

来自T4MVC 文档

于 2015-12-21T18:41:07.630 回答
2

考虑将您的测试方法和控制器分离到一个单独的项目中,该项目取决于您的生产代码。这样你就不需要有#if Debug东西了。我不确定您的设置是什么,但您可以尝试使用包含在子句中的NonActionAttribute#if !Debug。因此,您的生产代码不会将这些方法作为控制器上的操作运行。但这与项目的错误布局有关。

于 2012-09-13T00:32:30.130 回答