In VB.NET (oder C#) Wie kann ich programmgesteuert feststellen, wenn eine öffentliche Variable in der Klasse helper.vb irgendwo innerhalb eines Projekts verwendet wird?Wie überprüfen Sie, ob eine Variable in einem Projekt programmgesteuert verwendet wird?
Antwort
Von MSDN
Das Find-Objekt können Sie nach Text suchen und in Orten der Umgebung zu ersetzen, die solche Operationen, wie der Quelltext-Editor unterstützen.
Es ist in erster Linie für Makro-Aufnahmezwecke gedacht. Der Makroaufzeichnungsmechanismus des Editors verwendet Suchen statt TextSelection.FindPattern, so dass Sie die globale Suchfunktionalität ermitteln können, und weil es im Allgemeinen nützlicher ist, als das TextSelection-Objekt für solche Vorgänge wie Suchen in Dateien zu verwenden.
Wenn die Suchoperation asynchron ist, z. B. Alle suchen, tritt das Ereignis FindDone auf, wenn der Vorgang abgeschlossen ist.
Sub ActionExample()
Dim objFind As Find = objTextDoc.DTE.Find
' Set the find options.
objFind.Action = vsFindAction.vsFindActionFindAll
objFind.Backwards = False
objFind.FilesOfType = "*.vb"
objFind.FindWhat = "<Variable>"
objFind.KeepModifiedDocumentsOpen = False
objFind.MatchCase = True
objFind.MatchInHiddenText = True
objFind.MatchWholeWord = True
objFind.PatternSyntax = vsFindPatternSyntax.vsFindPatternSyntaxLiteral
objFind.ResultsLocation = vsFindResultsLocation.vsFindResultsNone
objFind.SearchPath = "c:\<Your>\<Project>\<Path>"
objFind.SearchSubfolders = False
objFind.Target = vsFindTarget.vsFindTargetCurrentDocument
' Perform the Find operation.
objFind.Execute()
End Sub
<System.ContextStaticAttribute()> _
Public WithEvents FindEvents As EnvDTE.FindEvents
Public Sub FindEvents_FindDone(ByVal Result As EnvDTE.vsFindResult, _
ByVal Cancelled As Boolean) _
Handles FindEvents.FindDone
Select Case Result
case vsFindResultFound
'Found!
case else
'Not Found
Ens select
End Sub
Sie müssten Reflexion verwenden und es wäre kompliziert.
Warum machst du das programmatisch? Sie wissen, dass Visual Studio über die Funktion "Alle Referenzen suchen" verfügt, mit der dies für Sie erledigt werden kann.
Finden Sie alle Referenzen ist Ihr Freund.
Reflektor verfügt über die Funktion Analysieren. Oder ist das eine Art Laufzeitfunktion, nach der Sie suchen?
Sprechen Sie darüber, bevor der Code kompiliert wird? Dies gegen eine kompilierte Assembly zu tun, wäre wahrscheinlich nicht trivial, obwohl Tools wie Mono.Cecil helfen könnten. Sie müssten tatsächlich jede Methode durchlaufen und die IL-Anweisungen für Aufrufe der Methoden get und set der betreffenden Eigenschaft prüfen. Es ist jedoch möglicherweise nicht so schlimm, besonders wenn Sie Cecil anstelle von System.Reflection verwenden. Cecil ist auch viel schneller, da es Assemblies als Dateien behandelt, anstatt sie tatsächlich in die Anwendungsdomäne zu laden.
Wenn Sie dies auf den tatsächlichen Quellcode eines Projekts ausführen möchten, sind die Dinge sehr unterschiedlich. Ich weiß nicht viel über Visual Studio-Add-Ins, aber möglicherweise können Sie den Befehl "Alle Referenzen suchen" programmgesteuert aufrufen und die Ergebnisse verwenden.
Es könnte auch etwas in System.CodeDom helfen. Es sieht so aus, als könnten Sie eine CodeParser
verwenden, um den Code in eine CodeCompileUnit
zu analysieren, und von dort aus gehen Sie alle Anweisungen in allen Methoden und überprüfen Sie für verwandte CodePropertyReferenceExpression
s.
- 1. Überprüfen Sie, ob eine Funktion @classmethod verwendet
- 2. , wie effizient überprüfen, ob die Variable
- 3. Überprüfen, ob eine Datei ohne try catch verwendet wird?
- 4. Wie programmgesteuert wird Projekt in TFS zugeordnet?
- 5. Wie überprüfen Sie, ob eine Variable in einem Modul in Julia definiert ist?
- 6. Sass überprüfen, ob Variable übergeben wird
- 7. Überprüfen Sie, ob eine Zeichenfolge in C++
- 8. Überprüfen Sie, ob es sicher ist, über eine JavaScript-Variable
- 9. Wie zu bestimmen, wo oder ob eine Variable in einem SSIS-Paket verwendet wird
- 10. Überprüfen Sie, ob die Variable eine Zahl ist
- 11. Überprüfen Sie, ob eine Variable ein Datum mit Zweig ist
- 12. Überprüfen, ob eine Variable eine Ganzzahl in Javascript ist
- 13. Wie kann ich programmgesteuert überprüfen, ob eine CYGWIN-App in einem SH-Skript installiert ist?
- 14. Überprüfen Sie, ob eine Klassenmethode
- 15. Überprüfen Sie, ob eine Variable ein Array ist
- 16. Überprüfen Sie, ob der Prozess als eine Pipe ausgeführt wird
- 17. Überprüfen Sie, ob eine bestimmte EXE-Datei ausgeführt wird
- 18. Überprüfen Sie, ob eine Unterroutine als Lvalue oder Rvalue in Perl verwendet wird
- 19. Überprüfen Sie httpErrors ErrorMode programmgesteuert
- 20. Wie wird angular-acl in einem Winkelmeteor-Projekt verwendet?
- 21. In MySQL Stored Procedures überprüfen, ob eine lokale Variable
- 22. überprüfen Sie, ob eine C# Methode
- 23. Überprüfen Sie, ob ein SQL-Server programmgesteuert verfügbar ist.
- 24. Überprüfen Sie, ob NSAlert derzeit angezeigt wird
- 25. Wie überprüft man, ob eine Dreckkontrolle verwendet wird?
- 26. Überprüfen Sie, ob eine Telefonnummer in asterisk
- 27. Finden Sie heraus, ob eine Funktion in einem C++ - Projekt aufgerufen wird?
- 28. , wie Sie überprüfen, ob die PHP-Variable hindi Text
- 29. Wie kann ich überprüfen, ob eine bestimmte öffentliche Schlüsseldatei mit git verwendet wird?
- 30. Wie kann ich überprüfen, ob eine Variable eine andere Variable in einer Windows-Batch-Datei enthält?
Ein Weg, der nicht programmatisch ist: Kommentieren Sie die Variable und versuchen Sie eine Kompilierung :-) – torial