Ich verwende CodeDom, um dynamischen Code basierend auf Benutzerwerten zu generieren. Einer dieser Werte steuert, was der Name der Klasse ist, die ich erzeuge. Ich weiß, ich könnte den Namen auf Sprachregeln über gültige Klassennamen mit regulären Ausdrücken basierte sterilisieren, aber ich würde gerne wissen, ob es eine bestimmte Methode in den Rahmen eingebaut ist zu validieren und/oder einen Klassennamen zu sterilisieren.Gibt es eine .NET-Funktion, um einen Klassennamen zu validieren?
Antwort
Ein einfacher Weg, um zu bestimmen, ob ein String ein gültiger Bezeichner für eine Klasse oder Variable ist die statische Methode
System.CodeDom.Compiler.CodeGenerator.IsValidLanguageIndependentIdentifier(string value)
Ich habe eine Antwort auf meine Frage gefunden. Ich kann anrufen
wo Klasse1 ist ein CodeObject, um alle Bezeichner in dieser CodeDom-Struktur und darunter zu überprüfen. So kann ich dieses Recht nennen, nachdem ich meine CodeTypeDeclaration class1 schaffen nur den Klassennamen zu bestätigen, oder kann ich meine CodeDom aufbauen und diese dann am Ende rufen alle Kennungen in meinem Baum zu validieren. Genau das, was ich brauchte!
Verwenden Sie die CreateValidIdentifier
Methode auf der CSharpCodeProvider
Klasse.
Bei einigen Eingaben wird ein gültiger Name zurückgegeben. Wenn Sie nur den Namen validieren und nicht korrigieren möchten, vergleichen Sie die Eingabe und Ausgabe. Es wird keine gültige Eingabe ändern, so dass die Ausgabe äquivalent ist.
public static bool IsReservedKeyWord(string identifier)
{
Microsoft.CSharp.CSharpCodeProvider csharpProvider = new Microsoft.CSharp.CSharpCodeProvider();
return csharpProvider.IsValidIdentifier(identifier);
}
- 1. Gibt es eine gute Möglichkeit, jQuery-Code zu validieren?
- 2. Gibt es eine Möglichkeit, hAtom-Mikroformate zu validieren?
- 3. Regex, um einen Dateinamen zu validieren
- 4. Gibt es einen richtigen Weg, um eine URL zu erstellen?
- 5. Gibt es eine API, um einen B-TREE zu zeichnen?
- 6. RequiredFieldValidator, um eine deaktivierte TextBox zu validieren
- 7. C# -Methode: Gibt es einen Parameternamen, um 'abgeleiteten Klassennamen' generisch einzufügen?
- 8. Gibt es eine Möglichkeit, einen Fremdschlüssel mit Laravels Validierungssyntax zu validieren?
- 9. Gibt es eine maximale Länge für den Klassennamen in CSS?
- 10. Schleife, um Benutzereingabe zu validieren
- 11. Gibt es eine Möglichkeit, einen integrierten Typ zu erweitern, um eine Schnittstelle zu erben?
- 12. Gibt es einen Grund, keinen einzelnen nicht verschachtelten Klassennamen als CSS-Selektor zu verwenden?
- 13. Gibt es Werkzeuge, um einen komplizierten SQL-Join zu visualisieren?
- 14. Gibt es einen kurzen Weg, um `{| x | zu schreiben x} `?
- 15. Gibt es Java-Bibliotheken, um einen wortbasierten Vergleich zu erstellen?
- 16. Gibt es einen offiziellen Ort, um OpenCV-Artikel zu finden?
- 17. Gibt es einen Algorithmus, um ein Abhängigkeitsdiagramm zu "vereinfachen"?
- 18. Gibt es einen besseren Weg, um Rubys Basisklassen zu "affen"?
- 19. Prestashop: Gibt es einen Haken, um den Versandpreis zu aktualisieren?
- 20. BOOST_FOREACH: Gibt es einen Trick, um die Großbuchstaben zu vermeiden?
- 21. Gibt es einen Schienenweg, um den aktuellen Routenumfang zu erhalten?
- 22. Gibt es einen richtigen Weg, um mein CSS zu gestalten?
- 23. Gibt es einen gdb-Befehl, um ein Schleifenkonstrukt zu beenden?
- 24. Gibt es einen Befehl, um git init rückgängig zu machen?
- 25. Gibt es eine Möglichkeit oder einen Workaround, um einen clientseitigen Trigger zu erzwingen?
- 26. Wie verwende ich HTML5, um einen Datumsbereich zu validieren?
- 27. Gibt es eine Perl-Funktion, um einen String in einen Regexp zu verwandeln, um diesen String als Muster zu verwenden?
- 28. javax.validation: Einschränkung, um eine Stringlänge in Bytes zu validieren
- 29. Gibt es eine Java-Bibliothek, um zu validieren, dass ein XML-Snippet eine Teilmenge einer größeren XML-Datei ist?
- 30. Gibt es eine Android-Bibliothek, um Gitarrenakkorde zu erkennen?
Alle nennen dies eine Kennung umbenannt wird, wenn es mit einem reservierten Konflikt Wort. Es wird keine gültige ID erstellt, wenn der übergebene Wert ungültige Zeichen enthält. Dies ist hilfreich, aber nicht alles, was passieren muss, bevor Sie den neuen Codetyp erstellen können. – Zach