![](/img/trans.png)
[英]C# - text to double conversion throws System.TypeInitializationException
[英]C# System.TypeInitializationException When Generic Types used
當我嘗試調用以下代碼時,我在C#中收到System.TypeInitializationException:
List<BuyShopItem> buyShopItemList = new List<BuyShopItem>(0);
BuyShopItem
在外部程序BuyShopItem
,並且包含以下內容:
namespace GameProtocol
{
public struct BuyShopItem
{
public int ShopItemID;
public int Amount;
public int GoldPrice;
public int SilverPrice;
public int CharacterPointPrice;
public int ResearchPointPrice;
}
}
可能是因為外部裝配,對吧?
不幸的是,我無法更改它,因為我需要再次將BuyShopItem
傳遞回另一個外部程序集。
有關程序集的一些信息:來自Unity游戲.NET 3.5(根據DotPeek: msil, .Net Framework v3.5
)
我在SharpDevelop和Visual Studio 2017中遇到問題,因此可能與IDE不相關。 peverify
結果:
Microsoft (R) .NET Framework PE Verifier. Version 4.0.30319.0
Copyright (c) Microsoft Corporation. Alle Rechte vorbehalten.
[MD]: Error: Field has a duplicate, token=0x040059d7. [Token:0x040059CF]
[MD]: Error: Field has a duplicate, token=0x040059cf. [Token:0x040059D7]
[MD]: Error: Field has a duplicate, token=0x0400a48b. [Token:0x0400A478]
[MD]: Error: Field has a duplicate, token=0x0400a478. [Token:0x0400A48B]
4 Fehler wird/werden überprüft Assembly-CSharp.dll
如果您有任何提示,請告訴我。 我將盡快嘗試。
這是Visual Studio 2017中的異常的屏幕截圖: https : //i.imgur.com/WHCbWTM.png
更新:我只是嘗試以下操作: Console.WriteLine(typeof(BuyShopItem));
,發生同樣的錯誤。 為什么無法獲得類型?
可以創建一個零長度的結構列表。
也可以創建在不同程序集中定義的某種類型的列表-但要檢查以確保在運行時可以找到必需的DLL。
通常,構造實例非常安全-但請檢查是否存在自定義構造函數引發異常。
還要仔細檢查以查看BuyShowItem結構是否指定了調用其他代碼的任何靜態字段,這又可能會失敗。 這通常是TypeInitializationException的根本原因。
請參閱: https : //msdn.microsoft.com/zh-cn/library/system.typeinitializationexception(v=vs.110).aspx
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.