Zac*_*ach 22 .net c# validation naming class
我正在使用CodeDom根据用户值生成动态代码.其中一个值控制着我正在生成的类的名称.我知道我可以使用正则表达式根据有关有效类名的语言规则对名称进行消毒,但我想知道框架中是否有一个特定的方法来验证和/或消毒类名.
Mic*_*cah 26
确定字符串是否是类或变量的有效标识符的简单方法是调用静态方法
System.CodeDom.Compiler.CodeGenerator.IsValidLanguageIndependentIdentifier(string value)
Run Code Online (Sandbox Code Playgroud)
CreateValidIdentifier
在CSharpCodeProvider
课堂上使用该方法.
CSharpCodeProvider codeProvider = new CSharpCodeProvider();
string sFixedName = codeProvider.CreateValidIdentifier("somePossiblyInvalidName");
CodeTypeDeclaration codeType = new CodeTypeDeclaration(sFixedName);
Run Code Online (Sandbox Code Playgroud)
它给出了一些输入的有效名称.如果您只想验证名称而不修复它,请比较输入和输出.它不会改变有效输入,因此输出将是等效的.