gpt4 book ai didi

.net - 对数据契约(Contract)实现限制

转载 作者:行者123 更新时间:2023-12-01 02:42:47 25 4
gpt4 key购买 nike

有什么方法可以对以数据协定形式作为参数传递给给定 WCF 服务的值施加限制?

例如,请考虑这个 Vehicle 的人为且肯定不可编译的示例。类(class):

[DataContract]
public class Vehicle
{
[DataMember]
[Restriction(MinValue = 1, MaxValue = 30)] // Certainly not allowed... or is it?
public int NumberOfWheels { get; set; }
}

当然,因为没有人希望找到超过 30 个车轮的车辆,所以我想限制 NumberOfWheels 的范围。到 1 到 30 之间的值。在这种情况下,有什么方法可以使用 XSD 限制/方面来限制可接受值的范围?

(请注意,我当然可以将 NumberOfWheels 的类型从 int 更改为 byte 以进一步限制可能值的范围。但是,这并不能解决问题......当然,没有人期望一辆车有 255 个车轮。)

最佳答案

这是使用数据注释的示例:

using System.ComponentModel.DataAnnotations;

[DataContract]
public class Test
{
[DataMember]
[Range(1, 30)]
public int MyProperty { get; set; }
}

public void DoWork(Test t)
{
// this will throw validation exceptions, overloads are available to trap and handle
Validator.ValidateObject(t, new ValidationContext(t), true);
//do stuff here
}

再次应注意,不能使用此方法将行为发送/强制发送到客户端。它只会验证对象是否满足所描述的验证。

关于.net - 对数据契约(Contract)实现限制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7733294/

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