OData 使用 ICollection<ITax> 转换为强类型
OData using ICollection<ITax> convert to strong type
我正在使用 OData 制作一个 post,但我需要传递一个强类型对象,
在我的主 class 中,我有这个 属性 包含接口集合
public ICollection<ITax> Taxes { get; set; }
正如我们在这里看到的那样,每个接口都由一种税种实现。
public sealed class Tax1 : ITax
{
public decimal BaseTotalAmount { get; set; }
public decimal TotalAmount { get; set; }
}
public sealed class Tax2 : ITax
{
public decimal BaseTotalAmount { get; set; }
public decimal TotalAmount { get; set; }
}
我没有通过 JSON 解决的问题是确定每种税种。
"Taxes": [
{
"BaseTotalAmount": 1.0,
"TotalAmount": 1.0
}
]
如何在 json 中设置一个字段来标识我的对象是 Tax1 类型?
有一个简单的方法,可能对您没有帮助,但由于您没有提供太多上下文,所以我可以提供给您。
您只需要一个 Tax
class 和另外一个 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; }
}
希望对您有所帮助
我正在使用 OData 制作一个 post,但我需要传递一个强类型对象, 在我的主 class 中,我有这个 属性 包含接口集合
public ICollection<ITax> Taxes { get; set; }
正如我们在这里看到的那样,每个接口都由一种税种实现。
public sealed class Tax1 : ITax
{
public decimal BaseTotalAmount { get; set; }
public decimal TotalAmount { get; set; }
}
public sealed class Tax2 : ITax
{
public decimal BaseTotalAmount { get; set; }
public decimal TotalAmount { get; set; }
}
我没有通过 JSON 解决的问题是确定每种税种。
"Taxes": [
{
"BaseTotalAmount": 1.0,
"TotalAmount": 1.0
}
]
如何在 json 中设置一个字段来标识我的对象是 Tax1 类型?
有一个简单的方法,可能对您没有帮助,但由于您没有提供太多上下文,所以我可以提供给您。
您只需要一个 Tax
class 和另外一个 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; }
}
希望对您有所帮助