在Windows 10更新1511之后,我尝试构建我现有的silverlight项目并获得此错误
类型或命名空间名称'MatchTimeoutInMilliseconds'不能 找到了(你是否错过了使用指令或程序集引用?) 用于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之前,我没有此错误。 我使用Visual Studio 2015 pro和更新1 有谁知道如何解决这个问题?
答案 0 :(得分:2)
好的,我找到了一个“坏”的解决方法。
在project.web代码的“Services / UserRegistrationService.cs”中,注释掉CreateUser的“[RegularExpression(...)]”,RegistrationData.UserName,RegistrationData.Email。
据我所知,他们改变了代码生成的原因。如果您拥有生成代码的旧副本,则会发现此属性不存在。
答案 1 :(得分:2)
Open RIA Services今天针对此http://openriaservices.codeplex.com/workitem/84
发布了修复程序答案 2 :(得分:0)
前几天我遇到了同样的问题,我正在处理的项目仍在使用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;}
希望这有帮助!