C# 使用ICollection的OData<;ITax>;转换为强类型

C# 使用ICollection的OData<;ITax>;转换为强类型,c#,odata,C#,Odata,我正在使用OData制作帖子,但我需要传递一个强类型对象, 在我的主类中,我有一个包含接口集合的属性 public ICollection<ITax> Taxes { get; set; } 我没有通过JSON解决这个问题,JSON可以识别每种类型的税 "Taxes": [ { "BaseTotalAmount": 1.0, "TotalAmount": 1.0 } ] 我如何设置一个字段来标

我正在使用OData制作帖子,但我需要传递一个强类型对象, 在我的主类中,我有一个包含接口集合的属性

public ICollection<ITax> Taxes { get; set; }
我没有通过JSON解决这个问题,JSON可以识别每种类型的税

"Taxes": [
        {
            "BaseTotalAmount": 1.0,
            "TotalAmount": 1.0
        }
    ]

我如何设置一个字段来标识该对象是json中的Tax1类型?

有一种简单的方法,可能对您没有帮助,但由于您没有提供太多的上下文,因此我可以提供给您

您只需要一个
Tax
类和另外一个
enum
。比如说
TaxType

public ICollection<Tax> Taxes { get; set; }

public enum TaxType
{
    TaxType1 = 0,
    TaxType2 = 1
}

public sealed class Tax : ITax
{
    public TaxType Type { get; set; }

    public decimal BaseTotalAmount { get; set; }

    public decimal TotalAmount { get; set; }
}
public ICollection Taxes{get;set;}
公共枚举分类类型
{
TaxType1=0,
分类类型2=1
}
公共密封类税:ITax
{
公共分类类型类型{get;set;}
公共十进制BaseTotalAmount{get;set;}
公共十进制总数{get;set;}
}

希望能有所帮助

这里没有明显的方法来做你想做的事。您可以扩充接口以包含一些附加的定义特征,或者您可以有多个
public-ICollection-tax1tax1taxes{get;set;}
public-ICollection-Tax2Taxes{get;set;}
属性。如果你能多解释一下你想做什么,我们也许能帮上忙。但是,接口的关键特征是有限契约。
public ICollection<Tax> Taxes { get; set; }

public enum TaxType
{
    TaxType1 = 0,
    TaxType2 = 1
}

public sealed class Tax : ITax
{
    public TaxType Type { get; set; }

    public decimal BaseTotalAmount { get; set; }

    public decimal TotalAmount { get; set; }
}