gpt4 book ai didi

c# - 如何区分 WCF 数据协定中用户指定的空值和默认值

转载 作者:行者123 更新时间:2023-11-30 22:18:46 25 4
gpt4 key购买 nike

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

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

public UpdateResult UpdateAPI(UpdateParam param){}

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

问:如果其中一个字段为空值,服务器端如何区分,空值是由用户指定的还是默认的非指定值?传入的 soap 消息中是否有有助于区分的内容?

如有任何帮助,我们将不胜感激。

提出的类似问题是1. Data member default values, how to figure out whether something was really sent?2.

最佳答案

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

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

你可以实现你的属性的setter,当你的属性被设置时自动设置相应的bool

关于c# - 如何区分 WCF 数据协定中用户指定的空值和默认值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15914464/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com