Gibt es eine Möglichkeit bedingte Methoden zuweisen oder preprosessor Richtlinien zur Laufzeit in C # hinzufügen?
-
03-07-2019 - |
Frage
Das Ziel ist in der Lage sein, das Debuggen zu wechseln rufe zur Laufzeit aus der Datenbank auf einer Produktions bauen ...
Lösung
Nein; der Punkt der bedingten Methoden und Präprozessordirektiven ist, dass sie der Compiler wegzulassen Code aus dem endgültigen ausführbaren verursachen. Die Laufzeit-Äquivalent davon ist ein if
Aussage.
Andere Tipps
Nicht an der Pre-Prozessor-Ebene. Schließlich sind das Ergebnis dieses Prozesses ausgeführt wird. Natürlich könnten Sie Ihren Pre-Prozessor prüft ändern normalen Code überprüft werden, die natürlich je nach Bedarf umgeschaltet werden kann.
Nein, aber die meisten Logging-Subsysteme bieten diese Fähigkeit. Z.B. mit log4net Sie die Protokollierungsstufe dynamisch ändern können, oder System.Diagnostics.Trace wenn verwenden, können Sie die Trace Ebene dynamisch.
Sie können natürlich nicht den binären Code als solche beeinflussen (wie bei der # if-Anweisung).
Was ich in der Regel tun ist, um sicherzustellen, dass mein Code eine Menge Protokollierung enthält, das aktiviert wird durch Spur schaltet . Auf diese Weise können Sie in der Produktion mit wenig oder gar keiner Protokollierung ein System laufen haben, und wenn Sie ein Problem erforschen möchten, können Sie schalten Anmeldung durch die Config-Datei zu ändern.