自分で作成したカスタム基本クラスからすべてのコントローラーを継承したいと思います。新しいコントローラーを追加するたびに行を変更できますが、そこに設定されるデフォルト値をどこかで指定できればもっと良いでしょう。そうすれば、これを忘れることを心配する必要がなくなり、後でプロジェクトに追加される他の人々がより簡単に時間を過ごすことができます。
これを達成する方法はありますか?
自分で作成したカスタム基本クラスからすべてのコントローラーを継承したいと思います。新しいコントローラーを追加するたびに行を変更できますが、そこに設定されるデフォルト値をどこかで指定できればもっと良いでしょう。そうすれば、これを忘れることを心配する必要がなくなり、後でプロジェクトに追加される他の人々がより簡単に時間を過ごすことができます。
これを達成する方法はありますか?
「コントローラーの追加」アクションが呼び出されたときに使用されるT4テンプレートをカスタマイズできます。C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\ItemTemplates\CSharp\Web\MVC 3\CodeTemplates\AddController\Controller.tt
基本的に、プロジェクトファイルの'〜\ CodeTemplates \ AddController\Controller.tt`にテンプレートをコピーする必要があります。
ここで利用可能な詳細情報(「足場テンプレートの追加とカスタマイズ」までスクロールダウン)
うん、それは簡単な作業です。まず、たとえばControllerから継承する「BaseController」というクラスを作成します。次に、すべてのコントローラーがBaseControllerから継承します。
編集: T4テンプレートを使用してコスチュームコントローラー( BaseControllerまたはおそらくControllerと呼ばれます-どちらかお好みの方)を生成することも機能すると思います。スコット・ハンゼルマンが彼の講演の1つで似たようなことをしているのを見たことがあります。
名前空間を使用してこれを行うことができます。コントローラーと同じ名前空間にControllerというクラスを作成します。例:
namespace UI.Controllers
{
public class Controller : System.Web.Mvc.Controller
{
//Code here
}
}
次に、Controllerへの標準の非修飾参照は、System.Web.Mvc.Controllerではなく基本クラスを参照します。
ただし、混乱する可能性があります。基本クラスを参照することを覚えておく必要があります。