Loading [MathJax]/jax/input/TeX/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >企业验证为父子类阻止不同的规则集

企业验证为父子类阻止不同的规则集
EN

Stack Overflow用户
提问于 2012-10-09 11:09:41
回答 1查看 383关注 0票数 0

当父类和子类有两个不同的规则集时,对子类的属性的验证不起作用。

这是类代码: Mytype是父类,Person是子类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    [HasSelfValidation]
    public class MyType
    {
        [SelfValidation(Ruleset = "RulesetA")]
        [SelfValidation(Ruleset = "RulesetB")]
        public void DoValidate(ValidationResults results)
        {
        }

        [NotNullValidator(Ruleset = "RulesetA")]
        [ObjectValidator("RulesetA", Ruleset = "RulesetA")]
        public Person Person { get; set; }

    }

    public class Person
    {
        [NotNullValidator(Ruleset = "RulesetB")]
        public string GivenName { get; set; }

    }

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    public interface IValidator<T>
    {
        ValidationResults Validate(T target);
    }

    public class MyValidator : IValidator<MyType>
    {
        public ValidationResults Validate(MyType target)
        {
            return Validation.Validate(target, new string[] {"RulesetA", "RulesetB"});
        }
    }

这就是失败的测试:(IsValid应该设置为False,但它是True)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
    [TestMethod]
    public void Should_return_false_when_validating_MyType_without_PersonApplying_GivenName()
    {
        //arrange
        var myType = new MyType()
                            {
                                Person= new Person()
                            };
        myType.Person.GivenName = null;

        //act
        MyValidator _validator = new MyValidator();
        var resultList = _validator.Validate(myType);

        //assert
        Assert.IsFalse(resultList.IsValid);
    }

你能帮帮忙吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-10-09 11:44:07

VAB根据规则集验证您的对象,并连接验证结果。下面是Validation.Validate方法的外观:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
var resultsReturned = new ValidationResults();

foreach (string ruleset in rulesets)
{
    var validator = ValidationFactory.CreateValidator(
        targetType, ruleset, source);

    foreach (var validationResult in validator.Validate(target))
    {
        resultsReturned.AddResult(validationResult);
    }
}

return resultsReturned;

换句话说,对对象的验证始终在单个规则集上执行。由于ObjectValidator仅针对RulesetA进行修饰,因此在RulesetB上运行时不会对Person对象进行验证。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12798755

复制
相关文章
[python]父类、子类、子类实例属性
本文旨在说明 父类、子类、子类实例的属性继承关系: >>> A = type('A', (), {'name':1}) >>> B = type('B',(A,), {'addr':'beijing'})    #B的父类为A >>> A.__dict__ mappingproxy({'name': 1, '__module__': '__main__', '__dict__': <attribute '__dict__' of 'A' objects>, '__weakref__': <attribute
py3study
2020/01/19
1.9K0
【Python】面向对象 - 继承 ② ( 子类重写父类成员 | 子类调用父类重名成员 | 子类中使用 父类类名 调用父类成员 | 子类中使用 super 调用父类成员 )
子类 继承 父类的 成员属性 与 成员方法 后 , 如果对 继承的 父类成员 不满意 , 可以 重写 父类成员 ;
韩曙亮
2023/10/11
7920
【Python】面向对象 - 继承 ② ( 子类重写父类成员 | 子类调用父类重名成员 | 子类中使用 父类类名 调用父类成员 | 子类中使用 super 调用父类成员 )
子类继承父类,父类的初始化
含有自变量的构建器 上述例子有自己默认的构建器;也就是说,它们不含任何自变量。编译器可以很容易地调用它们,因为不存 在具体传递什么自变量的问题。如果类没有默认的自变量,或者想调用含有一个自变量的某个基础类构建 器,必须明确地编写对基础类的调用代码。这是用 super 关键字以及适当的自变量列表实现的,如下所示:
秋白
2019/02/21
1.9K0
java 父类 new 子类
父类: public class A {   public  void  say(){        System.out.println("Hello   A");   } } 子类: public class B extends  A{ public  void  say(){ System.out.println("Hello   B"); } public void sing(){ System.out.println("sing   hell
用户1220053
2018/02/09
2.5K0
java父类引用指向子类对象好处_java子类调用父类属性
Java之所以引入多态的概念,原因之一就它在类的继承上的问题和C++不同,后者允许多继承,这确实给其带来了非常强大的功能,但是复杂的继承关系也给C++开发者带来了更大的麻烦,为了规避风险,Java只允许单继承,势必在功能上有很大的限制,所以,Java引入多态性的概念以弥补这点不足,此外,抽象类和接口也是解决单继承规定限制的重要手段.同时,多态也是面向对象编程的精髓所在.
全栈程序员站长
2022/11/03
1.3K0
子类赋值父类的赋值兼容
C++ 中,类型的匹配检测是非常严格的,但是你会发现一个现象,如果一个类继承了另外一个类,把子类的对象赋值给父类的时候,系统不但不提示错误,而且程序还能顺利的编译通过并运行。这其实就是 C++ 内部提供的赋值兼容的过程,但是要注意,如果子类数据成员比父类多,则会出现数据截断。具体表现形式如下图:
我与梦想有个约会
2023/10/20
1980
子类赋值父类的赋值兼容
golang继承——接口父类子类
从面向对象的角度上看,总会有一些使用子类不想做,希望父类去做的事情,在java这样的纯面向对象的语言中,方法就是使用父类和子类,子类通过继承父类的方法,实现子类自己的属性,如果没有某个方法没有经过子类重写,那么这个方法通过子类调用时,就会调用父类的方法。
Java架构师必看
2021/05/14
4.7K0
不同的batch_size对训练集和验证集的影响
我们知道,不同的batch_size对我们的训练集和验证集得出结果的精度和loss都会产生影响,是设置batch_size越大我们得到的精度越好,loss越好。还是batch_size越小我们得到的精度越好,loss越好呢?
算法与编程之美
2023/08/22
5840
不同的batch_size对训练集和验证集的影响
Python_子类调用父类的方法
1.方式一 子类调用父类的方法,包含2中形式的调用。一种形式是在类内部通过继承的方式调用父类的方法,另外一种形式是子类实例化后之后通过继承的方式来调用父类的方法。如下图所示:
py3study
2020/01/07
4.9K0
父类返回子类类型的函数写法
我们有这么一个类,一看就是要写 Builder 模式。不过由于我们的这个 Event 的类型比较多,因此希望写一个父类,来一个子类感受下:
bennyhuo
2020/02/20
4.8K0
Java父类强制转换子类原则
最近,微信群友在讨论子类父类的转换问题,其实不难,给大家用实例来说明一下就很明了了。 我们知道Java中子类转换成父类是没有任何问题的,那父类可以转换成子类吗? 来看下面这段程序: public class TestObjectConvert { public static void main(String[] args) { test1(); test2(); } private static void test1() { F
Java技术栈
2018/04/02
2.3K0
Java父类强制转换子类原则
Golang语言--子类调用父类函数
例子:
李海彬
2018/03/21
2.2K0
Golang语言--子类调用父类函数
禁止 Python 子类覆盖父类方法
当子类试图覆盖父类的时候,可以通过类型标注来发出警告。今天,我们来讲讲如何直接禁止覆盖。
用户9239730
2021/11/30
1.8K0
Python实现子类调用父类方法
这是因为尽管Student类继承了Person类,但是并没有调用父类的__init__()方法,那么怎样调用父类的方法呢? 有如下两种解决方案:
用户2936342
2018/08/27
3.1K0
子类A继承父类B, A a = new A(); 则父类B构造函数、父类B静态代码块、父类B非静态代码块、子类A构造函数、子类A静态代码块、子类A非静态代码块 执行的先后顺序是?
父类B静态代码块->子类A静态代码块->父类B非静态代码块->父类B构造函数->子类A非静态代码块->子类A构造函数
用户9854323
2022/06/25
2.2K0
Java中子类和父类的构造函数?
当继承父类时,构造对象时,父类中的构造函数(super())首先被调用。如果没有,编译器会插入调用父类构造的语句。这就是为什么在创建子类对象时父类中的构造超函数会被调用。  这里没有创建两个对象,只有一个子对象。让父类中的构造器被调用的原因是,如果父类有私有的属性需要在它的构造函数中初始化。  经过编译器插入父类构造函数,子类的构造函数如下所示:
用户7886150
2020/12/08
2.3K0
子类调用父类的同名方法和属性
在这里,定义Prentice类,继承了Master和School类,添加了和父类同名属性和方法
北山啦
2022/10/31
1.9K0
[012] 不同数据集划分与验证方法的实现与比较
Model evaluation is a set of procedures allowing you to pick the best possible stable model. It is an essential part of the model development process. It reveals the model’s behavior and its predictive power — indicates the balance between bias and variance on unseen data. As a starting point, split the given dataset into a train and test set. The model will learn to predict using the train set; in comparison, we will utilize the test set to assess the model’s performance.
Sam Gor
2021/02/03
1K0
[012] 不同数据集划分与验证方法的实现与比较
点击加载更多

相似问题

企业库验证所有规则集

11

企业库验证块和规则集

11

嵌套对象的企业库验证规则集问题

13

来自子类的JavaScript集父值

13

PHPCS不同目录的不同规则集

20
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文