Как использовать пользовательский тип с сервисом данных WCF и EF - PullRequest
2 голосов
/ 06 августа 2011

Я создал Службу данных WCF с базовым классом моей модели EF.

Я хотел вернуть пользовательский тип (которого нет в моей модели EF), но я получаю ошибку:

The server encountered an error processing the request. Please see the service help 
page for constructing valid requests to the service.

Мой пользовательский класс выглядит так:

public class MyCustomClass
{
     public string CustomProp { get; set; }
     public List<int> Ids { get; set; }
}

Как мне сделать эту работу?

Ответы [ 2 ]

1 голос
/ 06 августа 2011

Вам необходимо настроить возвращаемый объект как контракт данных:

[DataContract]
public class MyCustomClass
{
     [DataMember]
     public string CustomProp { get; set; }

     [DataMember]
     public List<int> Ids { get; set; }
}

См. Также: Как принять JSON в службе данных WCF?

Связано - это как настроить службу получения, возвращая значения, которые вы только что изменили, возвращая типы ваших методов.

0 голосов
/ 28 ноября 2011

Я нашел единственный способ сделать это с WCF Данные Службы - это передать строку json в качестве параметра и затем десериализовать ее в пользовательский класс.

Примерно так:

[WebGet(ResponseFormat = WebMessageFormat.Json)]
public bool ConfigurationChanged(string jsonStr)
{
    try
    {
        MyObject obj = new JavaScriptSerializer().Deserialize<MyObject>(jsonStr);

        // ... do something with MyObject
    }
    catch (Exception)
    {
        throw;
    }
}
...