如何在c#中使用标准JSON-serializer处理dbnull值?

时间:2012-12-11 16:44:31

标签: c# json wcf

我刚刚使用WebserviceHost创建了一个REST-ful webservice。我有几种方法可以将JSON对象返回给用户,如果他发出GET请求的话。

[OperationContract]
[WebGet(ResponseFormat = WebMessageFormat.Json, 
    UriTemplate = "appliances/{username}")]
List<object[]> GetAvailableAppliances(string username);

此方法返回数据库中的值。在object-array中有一些dbnull值,但标准的JSON Serializer无法处理它。 如果用户发出请求,则重置连接,但前提是列表中有dbnull值。

如何处理这些dbnull值?在列表序列化之前是否必须更改值?还是有不同的解决方案?

1 个答案:

答案 0 :(得分:1)

我个人绝不会让DBNull(最终是一个实现细节)超出数据访问代码;所以是的,我会对原产地的人进行消毒。 null通常是数据访问代码之外的DBNull的理想替代品(尽管我个人认为DBNull shouldn't even exist)。将所有内容视为object并不会使其更清晰 - 如果可能的话,一些类型良好的对象也会有很长的路要走。