T4MVCとか使ってないとパスがマジックストリングになりますね。RenderPartial的なヘルパーを用意してしまうほうがいいんじゃないの?という話。それを実現するためにいちいちコントロール毎にヘルパーを定義するのはバカらしいってことで、動的生成ですよ。App_Codeの動的コンパイルに介入(ControlBuilder.ProcessGeneratedCodeのoverride)して、実行時動的に拡張メソッドクラスを作り出してます。CodeSnippetTypeMemberとか初めて見た。FileLevelUserControlBuilderを派生させたUserControlHtmlHelperControlBuilderを作成。このクラスが動的生成をおこなうクラスで、ProcessGeneratedCodeをoverrideしてCodeTypeMemberCollectionにヘルパークラスのCodeSnippetTypeMemberを追加してます。動的クラスのコーディングはサンプルと言うことでシンプルな実装ですね。fieldAssignementBuilder)));続いて、このControlBuilderを使ってくれるようにASP.NETに指示をださなきゃいけないんだけど、それってどこでやってるんでしょうね。}ここが実行時に勝手に解釈されるようになってるのかな~。動的ヘルパーを生成したいascxのInherits="MvcUserControlHtmlHelpers.UserControlHtmlHelper"という記述が通常と違う部分なのはわかるんだけど。(System.Web.UI)実行時に初めてコードが生成されるから、コーディング時には↓こんな感じでメソッドないぜと怒られる。実行したところで、VSはそんなコードしらないんだってさ。そもそもMVCのViewUserControlクラスがこれと同じようにViewUserControlControlBuilderを使ってるんじゃんね。BaseTypeをうわがいてるくらい(目的はよくわかってないデス)ですね。追記:ascxなりaspxのベースクラス(ViewPage,ViewUserControl)の派生元(親)クラスを指定してるんでした。/>※人さまのコードをこんなにコピペしていいのだろうか...。blockから正規表現でpublicなプロパティ定義を取り出して、ヘルパーのパラメータ生成に利用してるところも見逃せない。T4MVCでの動的生成、Emitによる黒魔術に次いで、新たな黒魔術として覚えておくのもいいんではないでしょうか。Blog(ブログ)必読。一度で理解できないとあきらめず、理解できるまで何度でも読もう。アイス・インラインの区別、人数の差異は関係ない内容。難しい・わからない・理解できない。それなら、理解できるまで考えればいいだけだから。あぁ~、プレーオフもないし暇すぎる。