2017-02-04 4 views
0

Ich versuche, Reflexil zu verwenden, um eine Zeichenfolge in einer vorhandenen Methode in einer DLL zu protokollieren, die ich nicht den Quellcode habe. Das Problem ist, ich kann eine Methode hinzufügen, die System.IO verwendet, weil ich versuche, es zu einer DLL hinzuzufügen, die zuvor keine Datei geschrieben hat und keine Referenzen hinzufügen kann.Hinzufügen von Schreiben zum Protokollieren mit Reflection

Gibt es einen Befehl zum Schreiben von Protokollen, auf den über System.dll zugegriffen werden kann?

+0

Alle 'System.IO.File. *' Methoden befinden sich in mscorlib.dll und sind ohne neue Referenzen verwendbar. – thehennyy

+0

@thehennyy Das ist dann komisch. Es könnte mit reflexil zu tun haben, keine Verwendung von externen Mitgliedern zuzulassen, aber aus irgendeinem Grund funktioniert es mit ihrem Code-Editor – omni96

+0

Sogar die Basis-Assemblies mscorlib.dll und System.dll müssen in den Decompiler geladen werden, dann das reflexil ui sollten Sie Methoden aus diesen Assemblys auswählen können. – thehennyy

Antwort

0

Dies ist eine Teillösung für das Problem

ich das Original-Konstruktor zu einem normalen Verfahren einen neuen Konstruktor Erstellt modifizierte und angepasst dann die Signatur die neue Methode mit der Zugabe des Logging-Code genannt

Für jetzt kompiliert das, aber aus irgendeinem Grund stürzt die exe ab

+0

So jetzt habe ich es wieder mit etwas einfacherem Code versucht und es funktionierte Die WriteAllTextMethod stürzt die Anwendung aus irgendeinem Grund – omni96

+0

Das Problem war, auf C zu schreiben, so funktioniert meine Lösung – omni96

Verwandte Themen