Frage

ohne erben, aber nur mit reflexion ist es möglich, den Code eines Verfahrens in c #?

dynamisch zu ändern

so etwas wie:

generasacodicetagpre.

ich kann die foo-Klasse nicht ändern / bearbeiten.

generasacodicetagpre.

Mein letzter Ziel ist es, dynamik den Code von:

zu ändern generasacodicetagpre.

in system.xml.xsl.runtime.xslconvert.cs

um zu drehen:

generasacodicetagpre.

in:

generasacodicetagpre.

War es hilfreich?

Lösung

Der erste Teil dieser Antwort ist falsch, ich verlasse es nur, so dass die Evolution in den Kommentaren Sinn macht. Bitte sehen Sie sich die Bearbeitung (en).

Sie suchen nicht nach Reflexion, sondern Emission (was umgekehrt ist).

Insbesondere gibt es eine Methode, die genau das macht, was Sie wollen, Glück Sie!

siehe typebuilder.definemethodoverride

edit:
Ich schreibe diese Antwort, ich habe mich gerade daran erinnert, dass
neu mischen kann dies auch tun. Es ist viel schwieriger.

re-mix ist ein Framework, das Mixins in C # simuliert. In seinem grundlegenden Aspekt können Sie es als Schnittstellen mit Standardimplementierungen vorstellen. Wenn Sie weiter gehen, wird es viel mehr als das.

edit 2: Hier ist ein Beispiel für die Wiederherstellung (Implementierung inotifyPropertyChanged auf einer Klasse, die es nicht unterstützt, und hat keine Ahnung von Mixins).

generasacodicetagpre.

und der Test:

generasacodicetagpre.

Bitte beachten Sie das:

generasacodicetagpre.

und

generasacodicetagpre.

und

generasacodicetagpre.

den gleichen Effekt haben. Wenn Sie feststellen möchten, dass ein bestimmtes Mixin auf eine bestimmte Klasse angewendet wird.

Beispiel 2: Überschreibungen gleich und Gethashcode

generasacodicetagpre.

Dieses Beispiel ist meine Implementierung des praktischen Labors, das mit RE-Mix gegeben ist. Weitere Informationen finden Sie dort.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top