Asp.net 在C#中,如何在属性的属性中添加动态值

Asp.net 在C#中,如何在属性的属性中添加动态值,asp.net,asp.net-mvc-3,entity-framework-4,Asp.net,Asp.net Mvc 3,Entity Framework 4,我有以下代码块:- using System.ComponentModel.DataAnnotations; public class NewsItem { [RegularExpression(System.Configuration.ConfigurationSettings.AppSettings["UrlRegEx"], ErrorMessage = "Invalid link")] public string Url { get;

我有以下代码块:-

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的模型类中使用这段代码。

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

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


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

您希望使用web.config存储这样的字符串的原因是什么?资源文件、数据库或声明的常量都是非常合理的方法,但我从未听说过有人使用web.config appsettings进行此操作。@是的,你是对的。但我认为从Web.Config appsettings获取RegularExpression的值是一种在需要时快速更改表达式字符串的方法。否则,我们必须编译代码。或者实现ivalidatableobject来编写一个正则表达式派生的属性类,该类可以从web.config读取值。请参见