2

我需要定义一个 WCF API 以使用户能够更新大对象。虽然我可以定义一些较小的方法并让用户一次更新大对象的特定部分。但由于某种原因,我无法做到这一点。我尝试的另一种方法是将数据契约定义为键值的集合(键是一个enum,值是一些字符串)并让用户添加他想要更新的任何内容。这个 api 非常紧凑,但不是很直观,可能会让用户感到困惑。此外,由于该值是字符串类型,所以它不是很安全。

所以我现在创建了一个 api,用户可以在其中更新整个对象。例如:

public UpdateResult UpdateAPI(UpdateParam param){}

现在UpdateParam该类将几个可为空的字段。

Q:如果其中一个字段有空值,服务器端如何区分空值是用户指定的还是默认未指定的?传入的肥皂消息中是否有可以帮助区分的内容?

任何帮助将不胜感激。

提出的类似问题是 1.数据成员默认值,如何确定是否真的发送了某些内容? 2.

4

1 回答 1

3

不,据我所知,如果您只有一个可为空的字段,则无法区分条件...

但是,您可以为每个属性提供一个额外的 bool,它可以作为一个标志来指示该值是由用户设置还是仍为默认值

您可以实现属性的设置器以在设置属性时自动设置相应的布尔值

于 2013-04-09T23:47:18.900 回答