从.Net Web服务返回的字符串是否为空?

时间:2011-12-07 18:12:10

标签: .net web-services null asmx

我有一个生成的.net Web服务存根,它有几个字符串属性。鉴于来自Web服务的一些响应,这些属性是否可以为空值,或者它们是否始终至少转换为string.Empty?

如果在WSDL中将'nillable =“true”'属性应用于它们,它们是否只能为null?

你看......我想在没有获得任何空引用异常的情况下启动Trim()的属性值。

4 个答案:

答案 0 :(得分:2)

它们可以为null。如果您使用扩展方法,则可以优雅地处理null案例:

public static string SafeTrim(this string source)
{
  return (source ?? string.Empty).Trim();
}

答案 1 :(得分:1)

是的,它可以为空。

如果标签不存在,它可能为null。

答案 2 :(得分:1)

服务器应将null值序列化为null,而不是String.Empty,除非存在一些额外的逻辑。如果您不想编写一堆空检查,请考虑为trim进行扩展方法。

public static string TrimOrEmpty(this string val)
{
    if (val == null) { return string.Empty; }
    return val.Trim();
}

编辑:或者选择安德斯更精简的版本。 :)

答案 3 :(得分:0)

如果WSDL包含该字段的'nillable=true'属性,则Web服务中的字符串可以具有空值。