Некоторые обширные поиски и эксперименты Google привели меня к тому, что я могу ответить на свой вопрос и как раз вовремя!
Если кто-то из вас хотел бы знать, как это можно сделать, этот фрагмент CodePen я написал: http://codepen.io/AmruthPillai/pen/axvqB
Простой способ определить, является ли строка допустимым идентификатором для класса или переменной, состоит в том, чтобы назвать статический метод
System.CodeDom.Compiler.CodeGenerator.IsValidLanguageIndependentIdentifier(string value)
Используйте CreateValidIdentifier
метод на CSharpCodeProvider
класс.
CSharpCodeProvider codeProvider = new CSharpCodeProvider();
string sFixedName = codeProvider.CreateValidIdentifier("somePossiblyInvalidName");
CodeTypeDeclaration codeType = new CodeTypeDeclaration(sFixedName);
Это возвращает допустимое имя, учитывая некоторый вход. Если Вы просто хотите проверить имя и не зафиксировать его, сравнить ввод и вывод. Это не изменит допустимый вход, таким образом, вывод будет эквивалентен.
public static bool IsReservedKeyWord(string identifier)
{
Microsoft.CSharp.CSharpCodeProvider csharpProvider = new Microsoft.CSharp.CSharpCodeProvider();
return csharpProvider.IsValidIdentifier(identifier);
}
Я нашел ответ на свой вопрос. Я могу звонить
CodeCompiler.ValidateIdentifiers(class1);
, где class1 является CodeObject для проверки всех идентификаторов во что дерево CodeDom и ниже. Таким образом, я могу назвать это право после того, как я создаю свой CodeTypeDeclaration class1 для проверки просто имени класса, или я могу создать свой CodeDom и затем назвать это в конце для проверки всех идентификаторов в моем дереве.Как раз то, что мне было нужно!