簡體   English   中英

嘗試強制轉換動態對象時,對象必須實現 IConvertible 錯誤

[英]Object must implement IConvertible error when trying to cast dynamic object

我試圖將一個動態對象轉換為一個命名類型,它實際上是一個列表。 但我收到一個錯誤

對象必須實現 IConvertible

如何解決? 這是我的函數及其調用代碼

private static dynamic Cast(dynamic source,Type type)
{
    return Convert.ChangeType(source, type);
}

KipReport<dynamic> kr = JsonConvert.DeserializeObject<KipReport<dynamic>>(responseBody, dateTimeConverter);
List<JsonTeamMaster> json731 = Cast(kr.Data, typeof( List<JsonTeamMaster>));

我也試過像這樣直接投射

List<JsonTeamMaster> json731 = (List<JsonTeamMaster>)kr.Data;

哪個觸發

無法將“System.Collections.Generic.List 1[System.Object]' to type 'System.Collections.Generic.List對象轉換為1[System.Object]' to type 'System.Collections.Generic.List 1[EPMO_Toolset_API.common.JsonTeamMaster]”。

那么你能建議哪種是正確的鑄造方式嗎?


此外,如果我不使用動態對象

KipReport<JsonTeamMaster> rpt731 = JsonConvert.DeserializeObject<KipReport<JsonTeamMaster>>(responseBody, dateTimeConverter);
List<JsonTeamMaster> json731 = (List<JsonTeamMaster>)rpt731.Data;

它工作正常,我正在 json731 中獲取數據。

我認為以下方法應該對您有所幫助。

LoginInfo objLoginInfo;
JsonSerializer serializer = new JsonSerializer();
JsonTextReader reader = new JsonTextReader(new 
System.IO.StringReader(LoginInfoString.ToString()));
reader.SupportMultipleContent = true;
objLoginInfo = serializer.Deserialize<LoginInfo>(reader);

這里 LoginInfo 是我的類,您可以在此處使用dynamic & 我已將LoginInfoString作為 json 字符串傳遞,該字符串正在轉換為類類型。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM