Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Fody插件Validar失败。无法加载类型';Validar.ValidationTemplateAttribute';从程序集mscorlib_.net_Wpf_Validation_Fody_Fody Validar - Fatal编程技术网

.net Fody插件Validar失败。无法加载类型';Validar.ValidationTemplateAttribute';从程序集mscorlib

.net Fody插件Validar失败。无法加载类型';Validar.ValidationTemplateAttribute';从程序集mscorlib,.net,wpf,validation,fody,fody-validar,.net,Wpf,Validation,Fody,Fody Validar,我正在尝试使用在我的类中注入验证。我的解决方案由多个(目前为5个,将来可能会更多)项目组成,我希望在这些项目中注入验证。因此,我在其中一个程序集中定义了我的ValidationTemplate类,并在每个程序集中放置ValidationTemplateAttribute,如下所示: 使用Validar; [程序集:ValidationTemplate(typeof(IMS.General.Validation.ValidationTemplate))] 当我构建时,我收到一个我不理解的错误,但

我正在尝试使用在我的类中注入验证。我的解决方案由多个(目前为5个,将来可能会更多)项目组成,我希望在这些项目中注入验证。因此,我在其中一个程序集中定义了我的
ValidationTemplate
类,并在每个程序集中放置
ValidationTemplateAttribute
,如下所示:

使用Validar;
[程序集:ValidationTemplate(typeof(IMS.General.Validation.ValidationTemplate))]
当我构建时,我收到一个我不理解的错误,但阻止我继续:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Microsoft.WinFx.targets(268,9): 错误MC1000:未知生成错误,“无法加载类型” 来自程序集“mscorlib”的“Validar.ValidationTemplateAttribute”, 版本=4.0.0.0,区域性=中性,PublicKeyToken=b77a5c561934e089'

我正在使用Visual Studio 2013 professional update 4,目标框架是.Net framework 4.5

如果对这个问题有用,我的
ValidationTemplate
实现如下:

名称空间IMS.General.Validation
{
公共类验证模板:INotifyDataErrorInfo
{
私有只读INotifyPropertyChanged目标;
私有只读ValidationContext ValidationContext;
私有只读列表验证结果;
公共验证模板(INotifyPropertyChanged目标)
{
this.target=目标;
this.validationContext=新的validationContext(target,null,null);
this.validationResults=新列表();
Validator.TryValidateObject(this.target、this.validationContext、,
这是(validationResults,true);
target.PropertyChanged+=验证;
}
私有void验证(对象发送方,PropertyChangedEventArgs e)
{
this.validationResults.Clear();
Validator.TryValidateObject(this.target、this.validationContext、,
这是(validationResults,true);
var hashSet=新hashSet(
this.validationResults.SelectMany(x=>x.MemberNames));
foreach(hashSet中的var错误)
{
这个错误改变了(这个,
新数据错误SchangedEventArgs(错误));
}
}
公共IEnumerable GetErrors(字符串propertyName)
{
返回此消息。validationResults
.Where(x=>x.MemberName.Contains(propertyName))
.选择(x=>x.ErrorMessage);
}
公共布尔错误
{
获取{返回this.validationResults.Count>0;}
}
公共事件事件处理程序
ErrorsChanged=(s,e)=>{};
}
}
我做错了什么?我如何解决这个问题

编辑:
来吧,伙计们!!真的没有人能帮我吗。我应该做一个测试解决方案来显示问题吗?请告知!我真的需要一个解决办法!福迪通常工作得很好,在保持我的课堂整洁的同时为我节省了很多工作

在与Validar的程序员直接接触后,他发现不同版本的.Net framework处理方式不同。他修复了发布的版本1.4.6上的问题。这就解决了问题

所以我的建议是:使用Fody和Validar。它工作得很好,有很好的支持,保持代码干净,同时在WPF应用程序(或使用
INotifyDataErrorInfo
的任何其他框架)中进行漂亮的验证