Вывод в формате WCF REST

#wcf #wcf-rest

#wcf #wcf-rest

Вопрос:

У меня есть служба WCF, использующая протокол REST.

Код:

 [ServiceContract]
public interface IHybridService
{

    [OperationContract]
    [WebInvoke(Method = "GET", UriTemplate = "/hybridservice/compositedata/{value}", ResponseFormat = WebMessageFormat.Json, RequestFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.Bare)]
    CompositeType GetDataUsingDataContract(string value);
}

[DataContract]
public class CompositeType
{
    List<Data> data = new List<Data>();

    public CompositeType()
    {
        data.Add(new Data() { Id= 1, Value = "test1" });
    }

    [DataMember]
    public List<Data> DataList
    {
        get { return data; }
        set { data = value; }
    }
}
public class Data
{
    [DataMember(Name = "DataID")]
    public int Id { get; set; }

    public string Value { get; set; }
}
  

В настоящее время он возвращает следующий вывод:

 {
  "DataList": [
    {
      "Id": 1,
      "Value": "test1"
    }
  ]
}
  

Как я могу изменить значение Id внутри DataList на DataID ? Я пытался [DataMember(Name = "DataID")] , но это не работает. Я не хочу изменять свойство c # DataID на, чтобы оно работало.

Ответ №1:

Нашел причину, мне пришлось объявить Data класс как [DataContract] .