在wcf中为参数传递null将导致对象引用未设置为对象的实例
本文关键字:对象引用 设置 对象 实例 wcf 参数传递 null | 更新日期: 2023-09-27 17:53:46
我试图找到一个解决方案,很长一段时间没有运气。
我用以下接口创建了netnamedpipes服务
[OperationContract]
[ServiceKnownType(typeof(SubTable))]
float GetValue(Table table);
,当我在客户端以null调用它时
proxy.GetValue(台);我得到空期望,因为wcf不能序列化空我希望能够像这样传递null:
if (tbl!= null)
var result = proxyGetValue(tbl);
else
var result = proxyGetValueWhenNull();
您是否尝试过将表包装为另一个类的属性并设置属性[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();