是否有.NET函数来validation类名?
我正在使用CodeDom根据用户值生成动态代码。 其中一个值控制着我正在生成的类的名称。 我知道我可以根据有关使用正则表达式的有效类名的语言规则对名称进行消毒,但我想知道框架中是否有一个特定的方法来validation和/或消毒类名。
确定字符串是否是类或变量的有效标识符的简单方法是调用静态方法
System.CodeDom.Compiler.CodeGenerator.IsValidLanguageIndependentIdentifier(string value)
在CSharpCodeProvider
类上使用CreateValidIdentifier
方法。
CSharpCodeProvider codeProvider = new CSharpCodeProvider(); string sFixedName = codeProvider.CreateValidIdentifier("somePossiblyInvalidName"); CodeTypeDeclaration codeType = new CodeTypeDeclaration(sFixedName);
它给出了一些输入的有效名称。 如果您只想validation名称而不修复它,请比较输入和输出。 它不会改变有效输入,因此输出将是等效的。
我找到了问题的答案。 我可以打电话
CodeCompiler.ValidateIdentifiers(class1);
其中class1是CodeObject,用于validationCodeDom树及其下的所有标识符。 所以我可以在创建CodeTypeDeclaration class1之后立即调用它来validation类名,或者我可以构建我的CodeDom然后在最后调用它来validation树中的所有标识符。 正是我需要的!
上述就是C#学习教程:是否有.NET函数来validation类名?分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
public static bool IsReservedKeyWord(string identifier) { Microsoft.CSharp.CSharpCodeProvider csharpProvider = new Microsoft.CSharp.CSharpCodeProvider(); return csharpProvider.IsValidIdentifier(identifier); }
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/998015.html