gpt4 book ai didi

c# - 带有 DateTime 参数的 .NET Standard 程序集属性

转载 作者:行者123 更新时间:2023-11-30 23:02:22 26 4
gpt4 key购买 nike

背景

我正在尝试实现一个自定义属性,该属性可应用于 .NET 程序集以指示到期日期(开发人员不支持使用已分发用于测试的预发布版本的日期).它必须用 .NET Standard (2.0) 编写。

我知道我不能将 DateTime 作为参数传递,所以我传递了一个符合 ISO8601 的字符串(YYYY-MM-DD) 然后使用 DateTime.Parse()转换为 DateTime

我目前得到的属性如下:

[AttributeUsage(AttributeTargets.Assembly, Inherited = false, AllowMultiple = false)]
public sealed class UnstableReleaseExpiryAttribute : Attribute
{
public UnstableReleaseExpiryAttribute(string expiryDate)
{
ExpiryDate = expiryDate;
}
public DateTime Expiry
{
get
{
if (ExpiryDate != null && DateTime.TryParse(ExpiryDate, out DateTime expiry))
return expiry;

return DateTime.MaxValue;
}
}
public string ExpiryDate { get; }
}

这就是我打算如何使用它:

[assembly: UnstableReleaseExpiry("2018-05-24")]

问题

有没有一种方法可以使用正则表达式来验证字符串输入,并在日期实际上不可解析时阻止它被编译?我环顾四周,认为继承自 ValidationAttribute将是这样做的方式,但它似乎在 .NET Standard 2.0 中不可用。还有其他方法吗?

最佳答案

没有。目前没有。 ValidationAttribute 只是一个关于字段/属性格式的“注释”。其他 C# 代码必须激活它。

关于c# - 带有 DateTime 参数的 .NET Standard 程序集属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50503827/

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