Wie wird das Moles Isolation Framework implementiert?

Maulwürfe ist ein von Microsoft erstelltes Isolationsframework. Ein cooles Feature von Moles ist, dass es statische / nicht virtuelle Methoden und versiegelte Klassen "verspotten" kann (was mit Frameworks wie Moq nicht möglich ist). Nachstehend finden Sie eine kurze Demonstration der Möglichkeiten von Moles:

Assert.AreNotEqual(new DateTime(2012, 1, 1), DateTime.Now);

// MDateTime is part of Moles; the below will "override" DateTime.Now's behavior
MDateTime.NowGet = () => new DateTime(2012, 1, 1); 
Assert.AreEqual(new DateTime(2012, 1, 1), DateTime.Now);

Scheint, als ob Moles in der Lage wäre, den CIL-Körper von Dingen wie @ zu modifiziereDateTime.Now zur Laufzeit. Da Moles nicht Open Source ist, bin ich gespannt, welchen Mechanismus Moles verwendet, um die CIL von Methoden zur Laufzeit zu ändern. Kann jemand Licht ins Dunkel bringen?