0
IM在C#和Im遇到麻煩我創建使用的DataContractSerializer至極的XML文件反序列化列表中有從實體框架實體的名單,我使用的代碼是這樣的:廣東話反序列化由DataContractSerializer的列表
List<Proveedores> proveedores = ObtenerEntidadesProveedores();
foreach (Proveedores proveedor in proveedores)
{
proveedor.ProveedoresDomicilios.Load();
}
Type[] tipoColeccion = new Type[1];
tipoColeccion[0] = typeof(Proveedores);
DataContractSerializer serializador = new DataContractSerializer(typeof(List<Proveedores>), tipoColeccion);
serializador.WriteObject(entrada, proveedores);
salida = entrada;
我使用DataContractSerializer,因爲它會將Proveedores中的所有相關實體映射到XML。
現在的問題是,當我試圖把它找回來,我得到一個列表只有一個元素:
List<Proveedores> proveedores = new List<Proveedores>();
Type[] tipoColeccion = new Type[1];
tipoColeccion[0] = typeof(Proveedores);
DataContractSerializer serializador = new DataContractSerializer(typeof(List<Proveedores>), tipoColeccion);
proveedores = serializador.ReadObject(entrada) as List<Proveedores>;
當生成的XML有許多人是這樣的:
<ArrayOfProveedores xmlns="http://schemas.datacontract.org/2004/07/MxPOS10.Sistema.Datos" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
<Proveedores z:Id="i1" xmlns:z="http://schemas.microsoft.com/2003/10/Serialization/">
<EntityKey z:Id="i2" xmlns="http://schemas.datacontract.org/2004/07/System.Data.Objects.DataClasses" xmlns:a="http://schemas.datacontract.org/2004/07/System.Data">
<a:EntityContainerName>MxPOSv10r1Entidades</a:EntityContainerName>
<a:EntityKeyValues>
<a:EntityKeyMember>
<a:Key>IDProveedor</a:Key>
<a:Value i:type="b:int" xmlns:b="http://www.w3.org/2001/XMLSchema">0</a:Value>
</a:EntityKeyMember>
</a:EntityKeyValues>
<a:EntitySetName>Proveedores</a:EntitySetName>
</EntityKey>
<Compras/>
<Dumb i:nil="true"/>
<IDProveedor>0</IDProveedor>
<Nombre>PANADERIAS DEL CENTRO</Nombre>
<ProveedoresContacto/>
<ProveedoresDomicilios/>
<RFC>98982u24ujjjj</RFC>
<RegistroActivo>false</RegistroActivo>
</Proveedores>
<.... more Proveedores ....>
</ArrayOfProveedores>
有什麼建議嗎?
這必須以某種方式與你不告訴我們Proveedores'的'定義,還是其他什麼東西,因爲它工作正常用一個簡單的'Proveedores'類。 – Thorarin 2013-04-20 06:27:20
嗨,Proveedores的定義從未被感動,因爲它是由實體框架提供的,並且它可以沒有問題地被序列化,因爲我得到了帶有我的數據庫中所有Proveedores對象的列表的XML ... – 2013-04-20 13:32:19