C# 类型转换具有不同值的对象属性

Posted

技术标签:

【中文标题】C# 类型转换具有不同值的对象属性【英文标题】:C# Type casting Object Property With different Value 【发布时间】:2021-11-21 15:09:51 【问题描述】:

我需要将如下所示的对象数组发送到 Asp.Net API Contoller(Post 方法和 .Net Framework 4.5)

    var itemChanges = [];
   
   itemChanges.push(
        name: "Item1",
        desc: "percentage",
        value: 1
    );

    itemChanges.push(
        name: "Item2",
        desc: "detail",
        value: "sample_test"
    );

    itemChanges.push(
        name: "Item3",
        desc: "field",
        value: 
            name: "foo",                
            value: "test"
        
    );

我将上面的数组 Object Json 发送到 API 控制器。但第三项未正确解析。建议我如何以对象格式接收它。 'value' 属性可能有不同类型的数据。但是应该会收到的

我需要在 C# 端接收它。

实时案例检查PayPal Update Subscription API Sample

【问题讨论】:

重复***.com/questions/20432166/… 【参考方案1】:

对属性value 使用类型object,然后您可以在C# 服务器端使用模式匹配(x is Typex as Type)进行类型检查以处理特定的Value 类型。

public class MyClass

    public string Name  get; set; 
    public string Desc  get; set; 
    public object Value  get; set; 

【讨论】:

以上是关于C# 类型转换具有不同值的对象属性的主要内容,如果未能解决你的问题,请参考以下文章

Java 8:将具有字符串值的映射转换为包含不同类型的列表

如何将具有Object值的Map转换为适当的类型?

如何在 C# 中将对象数组向上转换为另一种类型的对象数组?

JSON转换为Java中具有类型属性的XML

C#中的类型转换

C#中的类型转换