0

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

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

此方法从数据库返回值。对象数组中有一些 dbnull 值,但标准 JSON 序列化器无法处理它。如果用户发出请求,则重置连接,但前提是列表中有 dbnull 值。

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

4

1 回答 1

1

就我个人而言,我永远不会让DBNull(最终是实现细节)超出数据访问代码;所以是的,我会在原产地对它们进行消毒。null通常是DBNull数据访问代码之外的理想替代品(尽管我个人认为它DBNull 甚至不应该存在)。将所有内容视为object更清晰 - 如果可能的话,一些类型良好的对象也会有很长的路要走。

于 2012-12-11T16:48:12.483 回答