代码之家  ›  专栏  ›  技术社区  ›  Jack Ukleja

跨数据注释/属性共享regex的方法

  •  2
  • Jack Ukleja  · 技术社区  · 15 年前

    我正在使用system.componentModel.dataAnnotations命名空间,以便在我的ASP.NET MVC应用程序上进行一些验证。

    我已经遇到一个关于正则表达式注释的问题。

    因为这些注释是属性,所以它们需要常量表达式。

    好的,我可以使用一个用regex字符串常量填充的类。

    问题是我不想用C解析器所需的转义字符污染我的regex。我的首选是将regex存储在资源文件中。

    问题是我不能在数据注释中使用这些字符串资源,因为它们不是常量!

    有什么解决办法吗?

    如果不是,这似乎是使用属性进行验证的一个显著限制。

    3 回复  |  直到 15 年前
        1
  •  3
  •   Marc Gravell    15 年前

    在C中,您只需要一个转义码(双引号)。 如果 使用逐字字符串文字:

    @"like \this\ note \slash here does nothing only quote "" needs doubling
    you can even use newline";
    

    总是 用编写regex @"..." 串-避免许多头痛。

        2
  •  0
  •   Jack Ukleja    15 年前

    显然,在.NET 4中,有对dataAnnotations属性的重写, Func< string> 在其构造函数中描述为“允许访问验证资源的函数”。

        3
  •  0
  •   Community CDub    8 年前

    可以创建自定义验证属性 like this 作为从资源文件加载正则表达式的代理。