사용자 지정 개체를 serialize하고 Windows 서비스로 보내야하는 응용 프로그램이 있습니다. 사용자 지정 개체에는 사용자 지정 개체 목록 2 개와 int, string 사전이 포함되어 있습니다. 나는 주위를 봤이 일반적으로 제대로 직렬화 설치되지 않는 데이터 유형 중 하나에 의한 것으로 나타났습니다목록/사전 직렬화
There was an error generating the XML document.
: 내가 객체를 직렬화하려고 할 때 오류 메시지가 무엇입니까. 그래서 나는 모든 사용자 정의 클래스에 대한 직렬화를 확인했으며 이것이 제대로 설정되었음을 알 수 있습니다.
지금 내 질문에 목록과 사전이 기본적으로 직렬화 가능합니까? 아니면 직렬화하기 위해 수행해야 할 사항이 있습니까? 또는 실행 파일간에 전달할 사용자 지정 개체 컬렉션을 serialize하는 더 좋은 방법이 있습니까?
편집 :
홈페이지 사용자 정의 클래스 :
[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
List 및 Dictionary는 사용자가 수행 할 수있는 작업없이 serialize 할 수 있습니다. 분명히, 당신은 그렇지 않은 것, 그렇지 않은 것을 직렬화하는 것입니다. – LightStriker