NHibernateを使うとき、あなたはあなたのentitesを仮想メソッドで定義し、NHibernateはあなたのオブジェクトの変更を追跡するプロキシオブジェクトを作成します。MoqとNHibernateは自動的に派生型を作成しますか?
Moqでは、フレームワークは派生型をインターフェイスまたは基本クラスから魔法のように作成します。例えば
var mock = new Mock<IFoo>();
IFoo magicFoo = mock.Object;
これは本当にクールです。これらのフレームワークはどのように機能しますか?彼らは反射、ジェネリック、ある種の動的コンパイル、または何か他のものを使用していますか?
これらは両方ともオープンソースプロジェクトであることを認識しています。コードを掘り下げることもできますが、ここで簡潔な回答をしたいと思います。
ベータ版を使用しても構わない場合は、実際に.NET Framework 4を使用すると、実行時にコンパイラを呼び出すことができますので、ilasmなどに頼らずにC#コードから生成できます。 –