我正在创建一个WCF REST服务,我将使用来自客户端应用程序(当前有一个简单的Windows窗体应用程序)的传入ID来查询SQL数据库,在那里我在多行文本框中获取ID,序列化它们然后将它们发送到WCF REST服务。由于没有尺寸限制,我使用POST。
从图像中,我正在反序列化JSON字符串,这就是我尝试过的。基本上,我想从这里实现以下目标:
反序列化JSON字符串>也许是数据表>使用Table Valued参数将DataTable传递给SQL查询,该参数在我的数据库上执行存储过程(从表值参数中的数据表中获取值)>这将返回ID的MatterID和MatterBalanceOutstanding(在本例中为ID:G00000013,ID:G00000014,G0000015),然后我将从API返回到客户端应用程序。
我觉得自己如此亲近,但是我无法理解这一点。请有人帮忙,因为我只需要创建一个ID为G00000013的DataTable,ID:G00000014,G0000015作为行。
完成后,我对存储过程部分很好。请有人帮忙吗?
以下是我的代码的屏幕截图。我也将包括我的代码。
public static MatterDetail DeserializeJSon<MatterDetail>(string jsonString)
{
DataContractJsonSerializer ser = new DataContractJsonSerializer(typeof(MatterDetail));
MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(jsonString));
MatterDetail obj = (MatterDetail)ser.ReadObject(stream);
return obj;
}
[DataContract]
[Serializable]
public class Employee
{
[DataMember]
public string firstname { get; set; }
[DataMember]
public string lastname { get; set; }
[DataMember]
public decimal salary { get; set; }
public Employee(string first, string last, decimal sal)
{
firstname=first;
lastname=last;
salary=sal;
}
}
[DataContract]
[Serializable]
public class MatterDetail
{
[DataMember]
public string MatterID { get; set; }
[DataMember]
public decimal MatterBalanceOutstanding { get; set; }
public MatterDetail(string ID, decimal M_CurBalanceOutstanding)
{
MatterID = ID;
MatterBalanceOutstanding = M_CurBalanceOutstanding;
}
}
答案 0 :(得分:0)
发现问题。类被指定错误。 MatterDetail应该包含ID而不是MatterID。
[DataContract]
[Serializable]
public class MatterDetailTest
{
[DataMember]
public string ID { get; set; }
}
希望这有助于其他人。