小编Phu*_*kem的帖子

C# 将 ExpandoObject 转换或转换为特定类对象

我在将 ExpandoObject 转换或转换为 C# 项目中特定类的对象时遇到问题。

对象类别:

public class PlayerData {
   public string Id {get; set;}
   public string Phone { get; set; }
   public Money Money { get; set; }
}

public class Money {
   public int Cash { get; set; }
   public int Bank { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

当服务器向客户端发送一些数据(PlayerData 类型)时,客户端会在 ExpandoObject 类中看到该数据。我也可以使用这些数据(如 Data.Id、Data.Phone 等)。

在我的问题中,我需要将我得到的 ExpandoObject(之前有 PlayerData 类型)转换或转换为客户端的 PlayerData。

投射类型的行:

PlayerData MyData = (PlayerData)Data;
Run Code Online (Sandbox Code Playgroud)

它返回错误:

System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation.
Run Code Online (Sandbox Code Playgroud)

我该如何修复它并正确投射或转换它?

注意 // …

c# casting class typeconverter

5
推荐指数
1
解决办法
1万
查看次数

标签 统计

c# ×1

casting ×1

class ×1

typeconverter ×1