我试图找到解决方案很长一段时间没有运气。
我的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();
答案 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();