0
그래서 나는 다음과 같습니다 XML을 가지고불가능? DataContractSerializer를 사용하여이를 deserialize하는 방법?
내가 DataContractSerializerdo 것을 사용 WP7에이 직렬화하는<a>
<b c="1" ></b>
<b c="2" ></b>
<b c="3" ></b>
<b c="4" ></b>
</a>
.
이 태그를 추가 태그에 넣으면 루트 수준에서 <> a를 누르는 것과 같은 몇 가지 트릭 없이는 불가능하다는 의견이 몇 가지 있습니다.
사실입니까? 귀하의 요청에 따라
나는 몇 가지 코드를
클래스를 추가 해요 :
[KnownType(typeof(B))]
[DataContract(Namespace = "")]
public class A:List<B>
{
[DataMember]
public List<B> B
{
List<B> _b = new List<B>();
get { return _b; }
set { _b = value; }
}
}
[DataContract(Namespace = "")]
public class B
{
[DataMember]
public string c = "foo";
}
Deserialisation :
var serializer = new DataContractSerializer(typeof(A));
var o = serializer.ReadObject(SomeResponseStream);
그리고이 많은, 다른 많은 변형. 그런데
- 클래스의 배열은 다음과 같이 XML로 직렬화됩니다 <의
<a>
<b>
<b c="1" ></b>
<b c="2" ></b>
<b c="3" ></b>
<b c="4" ></b>
</b>
</a>
공지 사항 추가, 원치 않는 수준이 B
: http://stackoverflow.com/questions/591907/how-can-you-control-net-datacontract-serialization-so-it-uses-xml -attributes-in LINQ to XML을 대신 사용해보십시오. – MarcinJuraszek
@ I4V Windows Phone 7에서는 사용할 수 없다고 생각합니다. –
@HighCore : 사용할 수 있습니다. http://stackoverflow.com/questions/5119312/windows-phone-7-and-system-xml-linq-library – NotMe