【问题标题】:In C# how to add Dynamic value in an Attribute of a property在 C# 中如何在属性的属性中添加动态值
【发布时间】:2011-12-15 15:41:15
【问题描述】:

我有以下代码块:-

using System.ComponentModel.DataAnnotations;
public class NewsItem
{            
        [RegularExpression(System.Configuration.ConfigurationSettings.AppSettings["UrlRegEx"], ErrorMessage = "Invalid link")]
        public string Url { get; set; }
}

这将返回错误“属性参数必须是属性参数类型的常量表达式、typeof 表达式或数组创建表达式”。

如何在 RegularExpression 属性的第一个参数中给出值。我想给出来自 Web.Config 变量的值。我在 EF 的 Model 类中使用此代码。

【问题讨论】:

  • 您想使用 web.config 来存储这样的字符串的原因是什么?资源文件、数据库或声明的常量都是非常合理的方法,但我从未听说有人为此使用 web.config appsettings。
  • @Xhalent 是的,你是对的。但我认为从 Web.Config appsettings 获取正则表达式的价值是一种在需要时更改表达式字符串的快速方法。否则我们必须编译代码。

标签: asp.net asp.net-mvc-3 entity-framework-4


【解决方案1】:

您可以指向数据注释以从资源文件中选择值

ErrorMessageResourceName

您可以编写自定义验证方法并从中选择值

CustomValidationAttribute

您可以编写一个正则表达式派生的属性类,该类可以从 web.config 中读取值。

【讨论】:

猜你喜欢
  • 2020-10-31
  • 2017-01-07
  • 1970-01-01
  • 2012-07-08
  • 1970-01-01
  • 2010-09-12
  • 1970-01-01
  • 1970-01-01
  • 2018-02-28
相关资源
最近更新 更多