회사와 제품 간의 일대 다 관계를 정의하는 다음 클래스 레이아웃이 있다고 가정 해 보겠습니다.XML 파일에 요소에 대한 참조를 저장하려면 어떻게해야합니까?
public class Company
{
public string Name { get; set; }
public string Address { get; set; }
}
public class Product
{
public Company Manufacturer { get; set; }
public string Name { get; set; }
}
XML로 직렬화하려고하지만 불행하게도 Product의 Company 인스턴스가 복제됩니다. 문서를 재주문 할 때, 복제 된 정보는 두 개의 별개의 인스턴스로 재결합됩니다.
회사 및 제품은 문서의 뒷부분에서 참조되므로이 관계를 변환 할 수 없습니다. 내가 필요한 것은 다음과 같은 문서를 생성하는 몇 가지 방법입니다.
<rootElement>
<companies>
<company>
<id>1</id>
<name>Apple</name>
<address>1 Infinite Loop... etc</address>
</company>
<company>
<id>2</id>
<name>Microsoft</name>
<address>1 Microsoft Way... etc</address>
</company>
</companies>
<products>
<product>
<companyId>1</companyId>
<name>iPhone</name>
</product>
<product>
<companyId>1</companyId>
<name>iMac</name>
</product>
<product>
<companyId>2</companyId>
<name>XBox 360</name>
</product>
</products>
</rootElement>
이러한 참조를 직접 다시 작성하기 위해 특정 컬렉션을 해킹 할 수 있다고 확신하지만 실제로 알고 싶습니다. 이 문제를 해결하는 "올바른"방법은 무엇입니까? Microsoft가이 문제를 생각하지 못했기 때문에이 문제를 해결하기 위해 .NET에서 사용할 수있는 뭔가가 있어야하지만 정확한 조건을 검색 할 수는없는 것 같습니다. .
감사의 DataContractSerializer 내가 뭘 찾고있는 것과 똑같아. –