Silverlight错误类型或命名空间名称';比赛超时(毫秒)';找不到
本文关键字:超时 毫秒 找不到 错误 命名空间 类型 Silverlight | 更新日期: 2023-09-27 18:22:44
在Windows 10更新1511之后,我尝试构建我现有的silverlight项目,并获得此错误
类型或命名空间名称"MatchTimeoutInMilliseconds"不能为已找到(是否缺少using指令或程序集引用?)用于Web项目生成的文件ProjectName.Web.g.cs
[DataMember()]
[Display(Name="UserNameLabel", Order=0, ResourceType=typeof(RegistrationDataResources))]
[RegularExpression("^[a-zA-Z0-9_]*$", ErrorMessageResourceName="ValidationErrorInvalidUserName", ErrorMessageResourceType=typeof(ValidationErrorResources), MatchTimeoutInMilliseconds=-1)]
[Required(ErrorMessageResourceName="ValidationErrorRequiredField", ErrorMessageResourceType=typeof(ValidationErrorResources))]
[StringLength(255, ErrorMessageResourceName="ValidationErrorBadUserNameLength", ErrorMessageResourceType=typeof(ValidationErrorResources), MinimumLength=4)]
public string UserName
{
get
{
return this._userName;
}
set
{
if ((this._userName != value))
{
this.OnUserNameChanging(value);
this.RaiseDataMemberChanging("UserName");
this.ValidateProperty("UserName", value);
this._userName = value;
this.RaiseDataMemberChanged("UserName");
this.OnUserNameChanged();
}
}
}
在安装更新1511之前,我没有出现此错误。我使用带有更新1的Visual studio 2015 pro有人知道怎么解决这个问题吗?
好的,我找到了一个"坏"的解决方法。
在project.web代码的"Services/UserRegistrationService.cs"中,注释掉CreateUser、RegistrationData.UserName、Registration Data.Email.的"[RegularExpression(…)]"
据我所知,他们改变了生成代码的原因。如果您有生成代码的旧副本,您会发现此属性不存在。
你可以在这里查找正在进行的问题。https://connect.microsoft.com/VisualStudio/feedback/details/2031887/generated-code-for-silverlight-references-matchtimeoutinmilliseconds-which-does-not-exist
Open RIA Services今天发布了针对此问题的修复程序http://openriaservices.codeplex.com/workitem/84
前几天我遇到了同样的问题,我正在处理的项目仍在使用System.ServiceModel.DomainServices
,甚至还没有迁移到Open RIA Services。因此,我不得不采用另一种有效但时间稍长的方法。
您需要做的是创建一个具有静态验证方法的CustomValidation类
public class CustomValidator
{
public static ValidationResult IsNumberValid(int number, ValidationContext context)
{
ValidationResult result = ValidationResult.Success;
if(number > 100) //Only an example
{
return new ValidationResult("Number is too large.", new string[]{"Number"});
}
return result;
}
}
现在,在您的元数据类中,将CustomValidation属性添加到您的实体中,或者在本例中添加到具有类型CustomValidator
和方法名称IsNumberValid
的属性中
[CustomValidation(typeof(CustomValidator), "IsNumberValid")]
public int NumberToValidate {get; set;}
希望这能有所帮助!