2010-03-16 2 views
0

XML로 serialize해야하는 비즈니스 클래스가 있습니다. BitArray 속성을가집니다.BitArray를 XML로 직렬화 할 수 있습니까?

내가 [XmlAttribute]로 장식했지만 직렬화 XML 직렬화 가능하기

과 실패, ICollection이 상속 유형은 상속 계층 구조의 모든 수준에서 추가의 구현 (선택 System.Boolean)가 있어야합니다. System.Collections.BitArray는 Add (System.Boolean)를 구현하지 않습니다.

xml로 직렬화 할 수 있는지 여부가 확실하지 않습니다.

에 대한 [있는 XmlAttribute]을 가지고있는 속성을 만들 방법을 신속하고 더러운 뭔가로서

답변

2

BitArray를 XML로 직접 직렬화 할 수 없습니다. 그 이유는 그것을 역 직렬화하기 위해서는 BitArray가 제공하지 않는 Add 메소드가 필요하기 때문입니다.

당신은, 그러나, 직렬화 할 수있는 배열에 복사 할 수 있습니다 : 당신이 할 경우

int[] baBits; // This is deserialized somehow 
BitArray ba = new BitArray(baBits); 

:

BitArray ba = new BitArray(128); 
int[] baBits = new int[4]; // 4 ints makes up 128 bits 

ba.CopyTo(baBits, 0); 
// Now serialize the array 

다른 길을가는이 BitArray 생성자를 배열을 직렬화 복원 및 호출 포함 이 경우 BitArray 크기가 워드 크기의 배수가되기를 원할 것입니다 (즉, int 배열을 사용하는 경우 BitArray 크기는 32의 배수 여야 함).

0

를 찾고에 대한 BitArray

감사를 직렬화하는 효율적인 수단이 될 것이며,이 게터을 반환 무슨 그렇지 않은 경우 정적 BitArray.CopyTo 메서드를 사용하여 BitArray에서 만든 배열?