Вместо использования ICollection<AnotherObject>
в вашем контракте данных, оно будет сгенерировано в клиентском приложении как AnotherObject[]
.
Попробуйте это:
определить новый контракт данных
[CollectionDataContract]
public class AnotherObjectCollection : List<AnotherObject> {}
в вашем коде:
DataContract(IsReference = true)]
public class SampleObject
{
[DataMember]
public long ID { get; private set; }
[DataMember]
public AnotherObjectCollection Objects { get; set; }
}
в Visual Studio (аналогично svcUtil) код прокси клиента будет выглядеть так:
[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.Runtime.Serialization", "3.0.0.0")]
[System.Runtime.Serialization.CollectionDataContractAttribute(Name="AnotherObjectCollection", Namespace="http://schemas.datacontract.org/2004/07/SampleObject", ItemName="AnotherObject")]
[System.SerializableAttribute()]
public class AnotherObjectCollection : System.Collections.Generic.List<AnotherObject> {}
DataContract(IsReference = true)]
public class SampleObject
{
[DataMember]
public long ID { get; private set; }
[DataMember]
public AnotherObjectCollection Objects { get; set; }
}
Это также работает для встроенных типов .NET.
1020 * антонио *