0

私はデバッグでのみ構築された (#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ん。設定内容はわかりませんが、inside句にラップされているNonActionAttributeを使用してみることができます。#if !Debugそのため、本番コードはコントローラーのアクションとしてメソッドを実行しません。しかし、これはプロジェクトの間違ったレイアウトに悪臭を放ちます。

于 2012-09-13T00:32:30.130 に答える