【发布时间】:2013-03-07 05:48:09
【问题描述】:
我在 SE 中找到了使用 CodeDOM 的类名验证方法并使用了它:
System.CodeDom.Compiler.CodeGenerator.IsValidLanguageIndependentIdentifier(string value)
通过此链接:Is there a .NET function to validate a class name?
但是,类名不允许使用 '.' (OEM 时期)其中命名空间可以是:
System.Linq 例如它允许'.'。在选择 Regex 之类的选项或用于验证命名空间名称的循环之前,我想知道 .NET 中是否有任何方法可用于此任务。
编辑:
实际情况是,我有一个来自。用户可以从文本框中给出类名和命名空间。对于那个类名和命名空间,我将给出一个生成的代码。如果用户输入 SomeClass 作为类名和 Some.Namespace 作为命名空间,那么生成的代码将是:
namespace Some.Namespace
{
class SomeClass{}
}
为此,我需要验证用户输入的这两个名称。
【问题讨论】:
-
你看过
CodeGenerator类中的第二种方法吗:ValidateIdentifiers()? -
是的@svick,但它的参数要求我提供整个 CodeObject。即
ValidateIdentifiers(CodeObject e)。但我只需要像测试类名一样测试字符串.... -
您始终可以为此创建一个临时对象:
CodeGenerator.ValidateIdentifiers(new CodeNamespace(namespaceName))。 -
好点。但这是一种无效的方法。我该如何验证它?不会有返回类型。你能解释一下吗?
标签: c# namespaces codedom validating