私の考えでは、これは素晴らしいアイデアのように思えます。EnvDTE を使用するとこれも可能になるのに、これに関する例が他にないのはなぜですか?
多分私はこれを行うことの欠点を見逃しています...?
優れた T4 および EnvDTE リソースへのポインタは、すばらしいものです。:)
実際にはうまく実装するのが非常に難しいため、おそらくあまり目にすることはありません。私は T4 を使用して、WinForms MVP バリアントで使用する WCF DTO からモデル クラスを生成してきましたが、正しく機能するまでにかなりの時間がかかりました。
クラスをテンプレートの「データ」ソースとして使用することは、それ自体が非常に困難です。リフレクション (または同様の API) を使用してコンパイルされた IL を読み取るか、CodeDom を使用してソース コードを読み取るかを選択する必要があります。コンパイル済みアセンブリを使用する場合は、ファイルのロックや参照アセンブリの読み込みなどの問題に対処する必要があります。ソース コードを使用することを選択した場合は、コンパイルできない可能性のあるコードに対処する必要があります。
その決定を下したら、プロパティのコピーは最も簡単な作業になります。また、ソース クラスのどのインターフェイスと属性 (存在する場合) を生成されたクラスに再実装/コピーする必要があるかを決定する必要があります。検証などをどのように実装しているかによって、これはあらゆる種類の小さな厄介な問題を引き起こす可能性があります。継承階層や他のモデル クラスへの参照を処理する方法についても、多くの楽しい決定があります。
上記のすべてに対処できますが、万能のアプローチを実装するのはかなり困難です。質問の「例」の部分に戻ると、報酬を得ることなく非常に多くの作業を行うという潜在的な問題もあります。モデル生成用に作成した T4 を共有したいのですが、それは私の雇用主のものであり、Web に投稿するためのアプローチを再実装するよりも、余暇を利用する方がよいでしょう...
テンプレートの「データ」ソースとしてクラスを使用することは非常に困難です
これは間違っています。aspmvc3の足場を見てください。 http://blog.stevensanderson.com/2011/01/13/scaffold-your-aspnet-mvc-3-project-with-the-mvcscaffolding-package/