如何区分WCF数据契约中用户指定的空值和默认值
本文关键字:空值 默认值 用户 何区 WCF 数据 契约 | 更新日期: 2023-09-27 18:08:15
我需要定义一个WCF API来允许用户更新大型对象。虽然我可以定义几个较小的方法,并让用户一次更新大对象的特定部分。但由于某种原因,我做不到。我尝试的另一种方法是将数据契约定义为键-值的集合(键是enum
,值是某个字符串),并让用户添加他想要更新的任何内容。这个api非常紧凑,但它不是很直观,可能会让用户感到困惑。另外,由于该值是字符串类型,所以它不是很类型安全。
现在我已经创建了一个api,用户可以在其中更新整个对象。例如:
public UpdateResult UpdateAPI(UpdateParam param){}
现在UpdateParam
类将有几个可空字段。
Q:如果其中一个字段为空值,服务器端如何区分?空值是由用户指定的还是默认的非指定值?在传入的soap消息中有什么东西可以帮助区分吗?
任何帮助都将是非常感激的。
类似的问题有1. 数据成员默认值,如何确定是否真的发送了一些东西?2.
不,据我所知,如果你只有一个可空字段,就没有办法区分条件…
但是,您可以为每个属性提供一个额外的bool值,它可以作为一个标志来指示该值是由用户设置的还是仍在其默认值 上。你可以实现你的属性的setter来自动设置相应的bool值