我有一个生成的.net Web服务存根,它有几个字符串属性。鉴于来自Web服务的一些响应,这些属性是否可以为空值,或者它们是否始终至少转换为string.Empty?
如果在WSDL中将'nillable =“true”'属性应用于它们,它们是否只能为null?
你看......我想在没有获得任何空引用异常的情况下启动Trim()的属性值。
答案 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服务中的字符串可以具有空值。