在我的 WPF MVVM 应用程序中,我从一个安静的 WCF 服务以 JSON 格式获取数据。我正在使用 JavaScriptSerializer 反序列化这些数据。但这无法处理空值(如果有)。在这种情况下,我必须发送一些值而不是我不想发送的 DBnull 值。
WCF 服务:
[OperationContract]
[WebInvoke
(
Method = "GET",
ResponseFormat = WebMessageFormat.Json,
UriTemplate = "ReportEmployee/All"
)
]
dcReportEmployee[] GetReportEmployee();
其中 dcReportEmployee 是数据合同
[DataContract]
public class dcReportEmployee
{
[DataMember]
public string Name { get; set; }
[DataMember]
public Int32 Status { get; set; }
}
在 WPF 应用程序中:
string sUrl = "LocalHostURL";
System.Net.WebRequest request = System.Net.HttpWebRequest.Create(sUrl);
request.Method = "GET";
request.UseDefaultCredentials = true;
request.ContentLength = 0;
System.Net.HttpWebResponse response = request.GetResponse() as System.Net.HttpWebResponse;
Stream objResponseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(objResponseStream);
string objResponseString = reader.ReadToEnd();
response.Close();
JavaScriptSerializer objJsonserialiser = new JavaScriptSerializer();
T[] arrResult = objJsonserialiser.Deserialize<T[]>(objResponseString);
在这里,如果 objResponseString 包含任何空值,那么它会失败。我本可以发送一些空值替换,但我不希望这样。
对此有什么想法吗?