【发布时间】:2015-08-25 16:37:22
【问题描述】:
我收到一个错误 无法将类型“object”隐式转换为“LookUpCodeCollection”。存在显式转换(您是否缺少演员表?) 当我在下面这行代码调用方法时
obj = Deserialize(xml.ToString(), typeof(LookUpCodeCollection));
这是 LookUpCode 对象
[System.Serializable()]
public class LookUpCode
{
#region "Member Variables"
private int mCodeID;
private int? mCategoryID;
private string mLookUpDescription;
#endregion
#region "Properties"
public int CodeID
{
get { return mCodeID; }
set { mCodeID = value; }
}
public int? CategoryID
{
get { return mCategoryID; }
set { mCategoryID = value; }
}
public string LookUpDescription
{
get { return mLookUpDescription; }
set { mLookUpDescription = value; }
}
#endregion
}
}
查找代码集合
using System;
using System.Collections.Generic;
[System.Serializable()]
public class LookUpCodeCollection : System.Collections.ObjectModel.Collection<LookUpCode>, IList<LookUpCode>
{
}
XML
- <ArrayOfLookUpCode xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
- <LookUpCode>
<CodeID>1</CodeID>
<CategoryID>1</CategoryID>
<LookUpDescription>States</LookUpDescription>
</LookUpCode>
- <LookUpCode>
<CodeID>2</CodeID>
<CategoryID>2</CategoryID>
<LookUpDescription>Connecticut Cities by Zipcode</LookUpDescription>
</LookUpCode>
- <LookUpCode>
<CodeID>3</CodeID>
<CategoryID>3</CategoryID>
<LookUpDescription>Zipcode Connecticut Cities</LookUpDescription>
</LookUpCode>
- <LookUpCode>
<CodeID>4</CodeID>
<CategoryID>4</CategoryID>
<LookUpDescription>ContactType</LookUpDescription>
</LookUpCode>
- <LookUpCode>
<CodeID>5</CodeID>
<CategoryID>5</CategoryID>
<LookUpDescription>PhoneType</LookUpDescription>
</LookUpCode>
- <LookUpCode>
<CodeID>6</CodeID>
<CategoryID>6</CategoryID>
<LookUpDescription>DocumentGenerationType</LookUpDescription>
</LookUpCode>
- <LookUpCode>
<CodeID>7</CodeID>
<CategoryID>7</CategoryID>
<LookUpDescription>AmendmentType</LookUpDescription>
</LookUpCode>
- <LookUpCode>
<CodeID>8</CodeID>
<CategoryID>8</CategoryID>
<LookUpDescription>ContractorsTown_TownCodes</LookUpDescription>
</LookUpCode>
- <LookUpCode>
<CodeID>9</CodeID>
<CategoryID>9</CategoryID>
<LookUpDescription>Status</LookUpDescription>
</LookUpCode>
- <LookUpCode>
<CodeID>10</CodeID>
<CategoryID>10</CategoryID>
<LookUpDescription>Upload Document Types</LookUpDescription>
</LookUpCode>
- <LookUpCode>
<CodeID>11</CodeID>
<CategoryID>11</CategoryID>
<LookUpDescription>ExpirationWarning</LookUpDescription>
</LookUpCode>
- <LookUpCode>
<CodeID>12</CodeID>
<CategoryID>12</CategoryID>
<LookUpDescription>RenewalInterval</LookUpDescription>
</LookUpCode>
- <LookUpCode>
<CodeID>13</CodeID>
<CategoryID>13</CategoryID>
<LookUpDescription>Reports</LookUpDescription>
</LookUpCode>
- <LookUpCode>
<CodeID>14</CodeID>
<CategoryID>14</CategoryID>
<LookUpDescription>ActiveInactive</LookUpDescription>
</LookUpCode>
</ArrayOfLookUpCode>
调用反序列化方法
//Declare the variables
LookUpCodeCollection obj = new LookUpCodeCollection();
obj = Deserialize(xml.ToString(), typeof(LookUpCodeCollection));
反序列化方法
private static object Deserialize(string input, Type toType)
{
System.Xml.Serialization.XmlSerializer ser = new System.Xml.Serialization.XmlSerializer(toType);
using (StringReader sr = new StringReader(input))
return ser.Deserialize(sr);
}
【问题讨论】:
标签: c# .net xml serialization xml-deserialization