'MatchTimeoutInMilliseconds' c# 生成的文件出错

'MatchTimeoutInMilliseconds' error in c# generated file

问题


这个错误才刚刚开始出现在我的项目中,我不确定为什么。我有一个生成文件的“Silverlight 5”项目文件。此文件包含 MatchTimeoutInMilliseconds 调用,似乎一直在出错:

 'System.ComponentModel.DataAnnotations.RegularExpressionAttribute' does not contain a definition for 'MatchTimeoutInMilliseconds'

我不知道如何解决这个问题,因为它与我编写的代码无关。

代码


/// <summary>
/// Gets or sets the 'uEmail' value.
/// </summary>
[DataMember()]
[DataType(DataType.EmailAddress)]
[Display(Name="Email address")]
[RegularExpression("^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\." +
        ")+))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$", ErrorMessage="Please enter a valid e-mail adress", MatchTimeoutInMilliseconds=-1)]
[Required()]
[StringLength(256)]
public string uEmail
{

}

以上是包含错误的代码。

有谁知道我该如何解决这个问题?

如果您查看版本信息部分的 RegularExpressionAttribute MatchTimeoutInMilliseconds 属性,您将看到:

通用Windows平台
自 10

起可用

.NET 框架
自 4.6.1 起可用

而且您使用的是 Silverlight 5,所以那里不支持它。您可以修复该问题,但修复您使用的模板不生成此 属性.

我今天遇到了同样的问题,即使 Evk 命名的 Microsoft 站点说它必须在那里,也无法通过安装 4.6.1 解决它。我的解决方案是安装 4.6.2!

另一件要提的事情(因为这对我们来说并不明显,我们花了一些时间来考虑 .Net 版本是问题所在)是即使您已将框架设置为“.Net 4.0”,这仍然有效你的项目。