我有一个应用程序需要序列化一个自定义对象并将其发送到一个Windows服务,自定义对象包含2个自定义对象列表和一个int,字符串字典。当我尝试序列化对象我收到错误消息:序列化列表/字典
There was an error generating the XML document.
我周围的一派,发现这通常是由于没有被设置为正确的序列化的数据类型之一。所以我已经通过并验证了所有自定义类的序列化,并且据我所知它已正确设置。
我现在的问题是,列表和字典默认情况下是可序列化的,还是需要做某些事情才能序列化它们?或者,是否有更好的方法来序列化可执行文件之间传递的自定义对象集合?
编辑:
主要自定义类:
[Serializable]
class MoveInInfoRequest : ServerRequestData
{ }
[Serializable]
[XmlInclude(typeof(GetUnitTypesResponseData)), XmlInclude(typeof(VendorObj.RequiredFields)),
XmlInclude(typeof(VendorObj.InsuranceChoice)), XmlInclude(typeof(VendorObj.ProrateSettings))]
public class MoveInInfoResponse : ServerResponseData
{
public GetUnitTypesResponseData UnitTypesInfo
{ get; set; }
public List<VendorObj.RequiredFields> RequiredFields
{ get; set; }
public Dictionary<int, String> RentalPeriods
{ get; set; }
public List<VendorObj.InsuranceChoice> InsCoverageAmounts
{ get; set; }
public VendorObj.ProrateSettings ProrateOptions
{ get; set; }
}
Sampple子类:其他两个类都建立一个类似这只是更长的时间,但他们只使用默认的数据类型。
<Serializable(), DataContract([Namespace]:="*companyNamespace*")> _
Public Class InsuranceChoice
Public Sub New()
End Sub
<DataMember()> _
Public InsuranceChoiceID As Integer
<DataMember()> _
Public CoverageDescription As String
<DataMember()> _
Public Premium As Decimal
<DataMember()> _
Public ActualCoverageAmount As Decimal
End Class
张贴代码将有助于得到答案:) – Mihai
他们是序列化的,是的。正如@Mihai所说,代码将会有所帮助。 – Yatrix
列表和字典可以无需任何操作即可序列化。很明显,你正在把一些东西放在它们之中,或者把别的东西串起来。 – LightStriker