我有这些课程
public class Control
{
public int ukey {get; set;}
public string ControlName {get; set;}
public string ControlType {get; set;}
public string Property {get; set;}
}
[DataContract]
[Serializable]
public class DeserializedProperty: Control
{
[DataMember]
public object DeserializedProp {get; set;}
}
在Control
类中,成员Property
是一个XML字符串。基于控件类型,每个控件的XML都不同。
我想查询数据库,获取所有控件,将属性反序列化为对象并返回它。这就是我的GET方法的样子:
public class OData_ControlsController : ODataController
{
[Queryable]
public HttpResponseMessage Get([FromODataUri] int id)
{
List<DeserializedProperty> deserializedSteps = new List<DeserializedProperty>();
var controls = getAllControls(id);//returns all control
foreach(var control in controls)
{
DeserializedProperty prop = new DeserializedProperty();
prop.DeserializedProp = _deserialize(control.Property);
deserializedSteps.Add(prop);
}
return Request.CreateResponse(HttpStatusCode.OK, deserializedSteps);
}
}
_deserialize
方法正确地反序列化XML。在return
行上,deserializedSteps
具有基类(Control
)和派生类(DeserializedProperty
),但是当我在客户端获得响应时,它不会#39}。在JSON中有DeserializedProp
个对象。响应只有基类属性。
如何退回DeserializedProperty (Control + DeserializedProp)
?