У меня есть XML-схемы с типом определенным, как это:Deserialize массив строк с DataContract
<xs:complexType name="InteractiveWorkflowAddress">
<xs:sequence>
<xs:element name="endpointAddresses" nillable="true" type="q1:ArrayOfstring" xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
<xs:element name="instanceId" type="ser:guid" />
</xs:sequence>
</xs:complexType>
где тип ArrayOfString определяется как
<xs:complexType name="ArrayOfstring">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="xs:string" />
</xs:sequence>
</xs:complexType>
<xs:element name="ArrayOfstring" nillable="true" type="tns:ArrayOfstring" />
Как я могу десериализации InteractiveWorkflowAddress
типа используя атрибут DataContract? Я пробовал следующий
[DataContract(Namespace = Constants.Namespace)]
public class InteractiveWorkflowAddress {
[DataMember()]
public string[] EndpointAddresses;
[DataMember()]
public string InstanceId;
}
Но пока InstanceId
член правильно десериализации, EndpointAddresses
всегда нуль.
Идея сериализации действительно хороша; но XmlArray и XmlArrayItem должны иметь какое-то значение при десериализации с помощью DataContractSerializer? Не следует ли использовать атрибут DataContractCollection? –