В пределах [DataContract] на моей службы WCF я определил:WCF ArrayOfAnyType - что это такое и почему он генерируется из ArrayList в определении WSDL?
[DataMember]
public ArrayList attributeNames {get; set;}
И полученное определение в моем файле WSDL выглядит следующим образом:
<xs:element xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" minOccurs="0" name="attributeNames" nillable="true" type="q1:ArrayOfanyType"/>
На моем клиенте, однако, что тип признается object[]
. Почему это? И как я могу использовать ArrayList
[DataMember] от клиента, если он напечатан как object[]
?
Я видел эту ссылку: https://social.msdn.microsoft.com/Forums/vstudio/en-US/e9342aae-4045-434c-a830-ea89451a8e0d/convert-arrayofanytype-web-service-to-arraylist?forum=csharpgeneral
Но я не знаю, как дженерики может помочь мне здесь ...
Основываясь на имени 'attributeNames', я предполагаю, что arraylist содержит строки. Верный? Если это так, «Список», вероятно, будет легче работать, и ваш клиент будет иметь строку «] [] или, возможно,« Список »в зависимости от того, как вы создали прокси-класс клиента. –
user1429080
Вы можете использовать 'List' или создать 'CollectionDataContract', более подробно здесь: http://stackoverflow.com/questions/37586165/serializing-data-using-xmlarrayitemattribute-not-working-well/37592775# 37592775 –
@ пользователь1429080 спасибо, что ответ. На самом деле у меня есть другая переменная, называемая атрибутом атрибутов, которая может быть разных типов внутри одного и того же списка/массива. –