我是csla验证的新手,在验证规则上有一个问题要解决。
这个场景是,我正在尝试根据来自服务器的响应来更新客户端上的集合。
出现“不支持的异常”的类是从"csla BusinessBase“派生的。
在设置属性时,我们使用了HAsPropertyChanged()方法,在该方法上,error as insert是一个无效操作,Remove是一个无效操作。
堆栈跟踪如在Csla.Core.ReadOnlyBindingList1.InsertItem(Int32 index, C item) at System.Collections.ObjectModel.Collection1.Add(T项)在Csla.Validation.BrokenRulesCollection.Add(IRuleMethod规则)在Csla.Validation.ValidationRules.CheckRules(List`1 list)在Csla.Validation.ValidationRules.CheckRules(String propertyName)在Csla.Core.BusinessBase.PropertyHasChanged(String propertyName)
对于它工作的一些进程,场景并不完全清楚,对于某些响应,它不能执行HasPropertyChanged,尽管在这两种情况下,值是相同的。
我不确定在哪里实现该方法以及如何实现该方法。您能提供您宝贵的建议吗?
发布于 2015-08-25 16:29:25
我不确定你是否还在寻找答案,但它可能会帮助那些遇到类似使用ReadOnlyBindingList的issue......Instead的人使用BusinessBinidngListBase。
ReadOnlyBindingList as name状态不支持添加和删除操作。
只是想说清楚。插入无效操作不是验证错误。在您的示例中,验证通过,CSLA调用ReadOnlyBindingList的Insert方法,该方法抛出无效操作异常。
发布于 2021-12-02 22:38:01
我知道这是旧的,但是对于将来可能有这个问题的其他人,可以尝试“使用SuppressListChangedReadOnlyEvents":例如:
list
secondlist
Using secondlist.SuppressListChangedReadOnlyEvents
For each item in list
secondlist.add(item)
End If
End Usinghttps://stackoverflow.com/questions/28108694
复制相似问题