Сериализация неизвестного типа в JSON
От: KARALIUS Россия http://ci-school.org
Дата: 21.05.19 14:44
Оценка:
Есть структуры и метод
[DataContract]
public struct DocumentData
{
    [DataMember]
    public string key; // Field id
    [DataMember]
    public object value; // Value for the Field
};

[DataContract]
public struct DocumentDataInt
{
    [DataMember(EmitDefaultValue=false)]
    public DocumentData[] document_data;
    
    [DataMember(EmitDefaultValue=false)]
    public string error_message;
}

[OperationContract]
[WebInvoke(Method = "POST", RequestFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.WrappedRequest, ResponseFormat = WebMessageFormat.Json)]
public DocumentData GetDocumentData(Guid document_id)

и всё хорошо работает пока value в DocumentData — простые типы — строка или число.

Но если я хочу поместить в value что-то вроде массива других структур
[DataContract]
public struct SingleDamage
{
    [DataMember(Name = "TYPE")]
    public string Type;
    
    [DataMember(Name = "PART")]
    public string Part;
}
...
x.value = new SingleDamage[10];
...

то веб-сервис падает с непонятной ошибкой.
Есть способ вернуть такой массив, не нарушая обшего подхода?
----
При промывке мозгов извилины стираются.
json
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.