我在将 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)
我该如何修复它并正确投射或转换它?
注意 // …