API模型设计:要求一个类中的基类的子类中的属性继承它,而不是另一个类

时间:2018-04-10 18:28:32

标签: c# asp.net-web-api

我需要在基类的子类中为我的API中的两个端点提供属性,这两个端点需要一个端点,另一端端是可选的。

public class Endpoint1RequestModel : BaseClass
{
    // Other properties specific to this endpoint here
}

public class Endpoint2RequestModel : BaseClass
{
    // Other properties specific to this endpoint here
}

public class BaseClass
{
    // Other shared properties here

    public PropertyInfo Property { get; set; }
}

public class PropertyInfo
{
    public string Address { get; set; }

    public string City { get; set; }

    public string State { get; set; }

    public string Zip { get; set; }
}

我需要将Endpoint1的设置设为:

public class PropertyInfo
{
    public string Address { get; set; }

    public string City { get; set; }

    [Required]
    public string State { get; set; }

    [Required]
    public string Zip { get; set; }
}

对于端点2:

public class PropertyInfo
{
    [Required]
    public string Address { get; set; }

    [Required]
    public string City { get; set; }

    [Required]
    public string State { get; set; }

    [Required]
    public string Zip { get; set; }
}

我已经尝试了一些东西,但根本无法让它按照我想要的方式运行。

1 个答案:

答案 0 :(得分:0)

为什么不这样做:

在Base类中有State和Zip,两者都是必需的。

Endpoint1RequestModel有地址和城市。

Endpoint2RequestModel的地址和城市都是必需的。

所以你的课程现在看起来像这样:

from http://gamehup.com to https://gamehup.com/browser-games/index

过多的遗产很糟糕,使一切变得复杂。