我有以下代碼:爲什麼我得到序列化錯誤?
class Program
{
static void Main(string[] args)
{
string xml = @"<ArrayOfUserSetting>
<UserSetting>
<Value>Proposals</Value>
<Name>LastGroup</Name>
</UserSetting>
<UserSetting>
<Value>Visible</Value>
<Name>WidgetsVisibility</Name>
</UserSetting>
</ArrayOfUserSetting>";
List<UserSetting> settings =
GetObjFromXmlDocument<List<UserSetting>>(xml);
}
public static T GetObjFromXmlDocument<T>(string xml)
{
T customType;
XmlSerializer serializer = new XmlSerializer(typeof(T));
XmlDocument xmlDocument = new XmlDocument();
xmlDocument.LoadXml(xml);
using (XmlNodeReader xmlNodeReader = new XmlNodeReader(xmlDocument))
{
customType = (T)serializer.Deserialize(xmlNodeReader);
}
return customType;
}
}
[Serializable]
public class UserSetting
{
public string Value { get; set; }
public string Name { get; set; }
}
的代碼工作正常,並調用GetObjFromXmlDocument產生一個List集合。但是,執行XmlSerializer serializer = new XmlSerializer(typeof(T));
時,mscorlib.dll中的System.IO.FileNotFoundException
類型的第一次機會異常。
所以我進入調試/例外,並打開託管調試助手。我在該行以下操作:
與顯示名稱「mscorlib.XmlSerializers」的組件未能在「LoadFrom」結合在AppDomain的上下文ID爲1的故障的原因載入時:系統。 IO.FileNotFoundException:無法加載文件或程序集'mscorlib.XmlSerializers,Version = 2.0.0.0,Culture = neutral,PublicKeyToken = b77a5c561934e089'或其某個依賴項。該系統找不到指定的文件。 文件名: 'mscorlib.XmlSerializers,版本= 2.0.0.0,文化=中性公鑰= b77a5c561934e089'
有人可以解釋爲什麼發生這種情況?有什麼我可以做的UserSetting
類,使問題消失?該應用程序對性能非常敏感,我寧可沒有例外。
謝謝,這是非常有益的!更重要的是,如果你在調試的時候看到這個,只需點擊F5,你的程序就會繼續運行(它不會崩潰......至少不是這個的b/c)。 – 2012-02-09 00:39:06