DataContracts를 통해 사용자 지정 데이터 개체를 serialize하고 복원 할 때 이상한 문제가 있습니다. 다음 클래스에서 문제가 발생합니다.deserialisation 개체 참조가 다른 것 같다
[DataContract]
public class ProjectManager
{
// list of projects
[DataMember]
public List<Project> ProjectList { get; set; }
// active project
[DataMember]
public Project ActiveProject { get; set; }
// instance variable
[DataMember]
private static ProjectManager instance = null;
ActiveProject는 ProjectList의 한 개체에 대한 참조를 저장합니다. 문제는 하나의 경우에는 ActiveProject에 저장된 참조가 ProjectList의 참조와 같지 않은 것처럼 보이지만 목록에 하나만 존재한다는 것입니다. 내 ActiveProject를 변경하면 ProjectList의 객체가 변경되지 않습니다.
이 문제는 데이터를 deserialising 한 후에 만 발생하며이 오류가 발생하지 않도록하기 위해 수행 할 수있는 작업을 알지 못합니다. 이 동작이 가능합니까? 또는 아직 찾지 못한 코드에 상호 참조가 있어야합니까?
'프로젝트'에서 '같음'을 재정의 할 수 있습니까? –
다른 인스턴스가있는 객체를 비 직렬화하면 '이 동작이 가능한가?'입니다. – I4V
나는 비 직렬화 직후에'ActiveProject'에 대한리스트를 foreach check했다. "true"를 반환 했으므로 오류는 내 코드의 다른 곳에서 발생해야합니다. 젠장 삭제 표시 ... 힌트를위한 thx! – xmashallax