我已经使用我的EF模型的基类创建了一个WCF数据服务。
我想返回一个自定义类型(不在我的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; }
}
我该如何做到这一点?
答案 0 :(得分:1)
您需要将退货对象设置为数据合同:
[DataContract]
public class MyCustomClass
{
[DataMember]
public string CustomProp { get; set; }
[DataMember]
public List<int> Ids { get; set; }
}
另请参阅:How to accept JSON in a WCF DataService?
Linked是如何设置接收服务,返回值只需更改方法的返回类型。
答案 1 :(得分:0)
我发现使用WCF Data 服务执行此操作的唯一方法是将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;
}
}