Ich bin gespannt, ob .NET irgendeine Form des dynamischen Abfangens von Methodenaufrufen (oder Eigenschaftenaufrufen) zur Laufzeit unterstützt. Das heißt, können Sie einen Aufruf an ein Objekt ohne statische Kompilierungsinformationen wie eine Schnittstelle abfangen (in Anlehnung an den Link CORBA DII ()) Text ) oder IDispatch von COM).
Wenn nicht, würde die neue Funktion "Dynamisch typisierte Objekte" in C # 4.0 in dieser Hinsicht hilfreich sein.
Es gibt keine integrierte Funktion, mit der Sie ein Objekt abfangen können, für das Sie die Instanziierung nicht steuern können. Auch dafür wird es in der kommenden .net 4.0 keine neuen Möglichkeiten geben.
Wenn Sie Instantiierung steuern können:
Wenn Sie die Instanziierung nicht steuern können
Alternativ könntest du dir eine dynamische Sprache wie IronRuby ansehen, die eine eingebaute alias_method
und define_method
goodness hat (was es dir erlaubt, alles neu zu definieren), also Interception eingebacken.
.NET 4.5 führt eine Methode zum ReJIT Methoden, die einen weiteren Hook für das Abfangen von Methoden bereitstellen (vorausgesetzt, Sie führen keinen parallelen / bg-GC aus und die Methode ist nicht inline)
Sehen Sie sich den Anwendungsblock für die Richtlinieninjektion an in Enterprise Library .
Sehen Sie sich die .net 4.0 dynamischen Objekte an ... Das kann es.
Tags und Links .net c# reflection dynamic