c# - 使用 validationAttribute 检查 WCF Web 服务中的日期是否为 UTC
问题描述
从这篇文章开始,如果我的客户向我发送了一个日期没有UTC kind
.
我创建了以下自定义属性:
public class IsUtcDateTimeAttribute : ValidationAttribute
{
protected override ValidationResult IsValid(object value, ValidationContext validationContext)
{
var date = value as DateTime?;
if (date != null)
{
if (date.Value.Kind != DateTimeKind.Utc)
{
return new ValidationResult("DateTime is not UTC format");
}
}
return ValidationResult.Success;
}
}
我有以下数据合同:
[OperationContract]
SaveAgreementResponse SaveAgreement(SaveAgreementRequest request);
[MessageContract(WrapperName = "SaveAgreementRequest", WrapperNamespace = "http://fooo/agreementServices/1")]
public class SaveAgreementRequest
{
[DataMember(Name = "TechnicalData"), MessageBodyMember(Name = "TechnicalData")]
public SaveAgreementTechnicalData TechnicalData { get; set; }
[DataMember(Name = "InsuranceAgreement"), MessageBodyMember(Name = "InsuranceAgreement")]
public DC.InsuranceAgreement InsuranceAgreement { get; set; }
}
[DataContract()]
public class InsuranceAgreement {
[DataMember()]
[IsUtcDateTime]
public System.Nullable<System.DateTime> creationDate { get; set; }
}
我有一个使用Effort
with a creationDate
of kind的集成测试local
。但不幸的是,当我调用SaveAgreement()
操作时,错误不会抛出。
我可能需要在某处注册或显式调用验证方法,但没有找到任何与 WCF Web 服务上的自定义属性验证相关的文档。
解决方案
推荐阅读
- php - laravel 5.6 中的搜索查询
- java - 使用 FileWriter 编写 java 类并创建生成类的实例
- php - 将编码 md5 vb.net 更改为 php
- c# - 在 c# 中是否有 Delphi 的“stored = false”属性子句的等价物
- google-plus - 是否仍然可以在 Google+ 中呈现带有描述的全出血预览?
- c# - 使用 C# selenium web 驱动程序从 excel 读取数据时出现异常
- postgis - 为什么我的图像马赛克中的自定义维度在 geoserver getmap 请求中不起作用?
- android - 活动恢复时 RecyclerView 返回 null
- android - 我的蓝牙应用程序无法正常工作,只有在打开我的蓝牙设置活动后才能工作
- c - 将 C 程序转换为 nasm 程序集 x86