在wcf中为参数传递null会导致对象引用未设置为对象的实例

时间:2014-03-27 07:00:44

标签: c# wcf nullreferenceexception

我试图找到解决方案很长一段时间没有运气。

我的netnamedpiped srvice具有以下界面

[OperationContract]
[ServiceKnownType(typeof(SubTable))]
float GetValue(Table table);

当我在客户端中使用null调用它时     proxy.GetValue(TBL);

我得到null expcetion,因为wcf无法序列化null 我希望能够通过这样的方式传递null:

if  (tbl!= null)
var result = proxyGetValue(tbl);
else
var result = proxyGetValueWhenNull();

1 个答案:

答案 0 :(得分:1)

您是否尝试将表格包装为另一个类的属性并设置属性[DataMember(IsRequired = false / true)]?

[DataContract]
public class TableWrapper{
    [DataMember(IsRequired=false)]
    public Table Table{get;set;}
}

[OperationContract]
[ServiceKnownType(typeof(SubTable))]
float GetValue(TableWrapper tableWrapper);

if  (tableWrapper.Table!= null)
    var result = proxyGetValue(tableWrapper.Table);
else
    var result = proxyGetValueWhenNull();