이것이 반복되는 쿼리라면, 어떤 것도 찾을 수 없기 때문에 그러한 경우에 대한 정확한 이유가있는 것을 제안하십시오.
xml serializer를 사용하여 다음 개체를 xml로 serialize하려고하지만 몇 가지 예외가 발생합니다.
[Serializable]
public class KAD
{
public KAD()
{
StaffMembers = new List<StaffMember>();
Jobs = new List<Job>();
Tasks = new List<Task>();
}
public List<StaffMember> StaffMembers { get; set; }
public List<Job> Jobs { get; set; }
public List<Task> Tasks { get; set; }
}
public class Job
{
public Job()
{
}
public int? JobId { get; set; }
public string JobTitle { get; set; }
}
public class Task
{
public Task()
{
}
public int? TaskId { get; set; }
public string TaskTitle { get; set; }
}
그리고 내 StaffMember 클래스는 다른 네임 스페이스이며 자식 속성이 다시 있지만 동일한 이름, 즉 Task 및 Job을 갖습니다.
public class StaffMember
{
public StaffMember()
{
Jobs = new List<Job>();
}
public int StaffMemberID { get; set; }
public List<Job> Jobs { get; set; }
}
public class Task
{
public int? TaskId { get; set; }
public string TaskTitle { get; set; }
public bool? OverAllTaskCompetency { get; set; }
public DateTime? ExpireyOfNextCompetencyOrLicenceForTask { get; set; }
}
public class Job
{
public Job()
{
Tasks = new List<Task>();
}
public int? JobId { get; set; }
public string JobTitle { get; set; }
public decimal? Rate { get; set; }
public List<Task> Tasks { get; set; }
}
serializer를 초기화하려고하면 다음 줄에서 예외가 발생합니다.
XmlSerializer ser = new XmlSerializer(typeof (KAD));
System.Xml.dll에서 'System.InvalidOperationException'유형의 처리되지 않은 예외가 발생했습니다.
추가 정보 : 'KAD'유형을 반영하는 중에 오류가 발생했습니다. 누구든지 가능한 해결책을 제안하면 대단히 감사하겠습니다. 한 가지 더, 자식 및 부모 범위에서 클래스 이름을 변경할 수 없습니다.
이 문제에 대한 해결책을 찾았습니다.
상위 개체의 네임 스페이스와 이름을 추가하면 serializer가 하위 개체와 구분할 수 있습니다. 상위 Job 및 Task 클래스와 마찬가지로 XmlRoot 속성을 사용합니다.
[XmlRoot("KAD_Job", Namespace = "root")]
public class Job
{
public Job()
{
}
public int? JobId { get; set; }
public string JobTitle { get; set; }
public string CraftCode { get; set; }
public decimal? Rate { get; set; }
}
[XmlRoot("KAD_TASK", Namespace = "root")]
public class Task
{
public Task()
{
}
public int? TaskId { get; set; }
public string TaskTitle { get; set; }
}
그리고 이것은 나를 위해 일했습니다. 감사.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다