結局

 コメントを引き継ぐために、まずコメントを属性に変換し、コンパイルして実行時型にコメントの情報を与え、それを引き継ぐという形にした。その手順を自動化したかったんだけど、CSharpCodeProviderがC# 2.0までしかコンパイルできないようなので普通に無理だなということになった。一回C# 3.0コンパイラで普通にコンパイルした方がよさそうな感じ。別に最新のcscを探して来てコンパイルさせてその型情報を使ってやってもよかったけどめんどいしなあ。

 これで俺が欲しかった機能は全部付けたからC# 4.0まで多分更新しないと思う。C# 4.0になったら型引数にinとかoutとかつけられるようにして、コンストラクタの引数にoptionalな規定値を使った値クラス/構造体を自動生成できるようにする予定。コンストラクタの引数と、プロパティのとこのコメントに同じことを二度書かなきゃいけなくて、さらに決まりきった代入文も毎回書かなきゃいけないのがつらすぎる。今は値クラスのパブリックフィールドに規定値を直接代入してるので快適だが、危険なプログラミングであることは間違いない。

 C#プログラマがインテリセンスに頼り切った存在である以上ソースコードからは離れられない。事前にソースコード生成すれば済む問題に実行時動的コード生成とかやろうとするのは間違いだろう。コンピュータにソースコードを読ませるのは大変だが、書かせるのは実に楽だ。