【发布时间】:2021-02-19 03:04:20
【问题描述】:
我需要从存储在其他变量中的类型转换动态变量。
例如:
dynamic dynamicVar = 3;
string type = "double";
var valueConverted = (type) dynamicVar;
我知道这不起作用,但是有没有办法做这样的事情?
我正在接收这样的 JSON:
[
{
"name": "Parameter1",
"description": "Description",
"value": "Value",
"type": "string"
},
{
"name": "Parameter1",
"description": "Description",
"value": false,
"type": "boolean"
},
{
"name": "Parameter3",
"description": "Description",
"value": 3,
"type": "double"
}
]
我需要把这个 json 转换成这样的对象:
public class Parameters
{
public string Parameter1 { get; set; }
public bool Parameter2 { get; set; }
public double? Parameter3 { get; set; }
}
当我尝试存储 Parameter3 时,我收到了错误: 无法将 Int 转换为 Double
【问题讨论】:
-
C# 是静态类型的。我认为这样的事情在 c# 中是不可能的。但是你可以做一个 switch case 语句来实现。
-
这样的东西有什么实际用途?对我来说,看起来像xy problem,TBH。您能否提供有关实际使用/代码的更多信息?
-
我正在创建一个要在前端显示的参数列表,当我收到这个列表时,我必须存储输入的值。我将在 Mapper 类中使用此代码,将 Json 转换为 Object。
-
为什么不直接使用现有的 json 序列化器将 json 映射到模型类?
-
@FrederikPietzko 是的,实际上我做了开关盒,但我正在寻找更好的方法。
标签: c# asp.net dynamic type-conversion