gpt4 book ai didi

c# - DataAnnotations WriteOnly 如果属性 == null

转载 作者:太空宇宙 更新时间:2023-11-03 20:32:01 25 4
gpt4 key购买 nike

我有以下属性:

public virtual String Firstname { get; set; }

我只希望能够写入当前为空(未设置)的字段,这可以通过 DataAnnotations 实现吗?

最佳答案

数据注释是元数据,例如用于验证的元数据,因此您可以创建自定义数据注释来验证属性值,但验证不能确保您的属性在已经具有值的情况下不会被设置。那是应该成为属性 setter 本身的一部分的代码,例如:

private string _firstName;

public string FirstName
{
get
{
return _firstName;
}
set
{
if (_firstName != null) throw ...
_firstName = value;
}
}

如果通过数据注释,您只是指属性,那么答案是:它可以通过属性来实现,但您需要一些东西来实现与属性相关的一些逻辑。这通常是通过面向方面的编程 (AOP) 来完成的,您将在其中创建将由某些复杂 API 使用的标记属性。 API 将基于该属性使用自定义代码包装您的类,在编译时(例如 PostSharp)或运行时(例如 Unity、Spring.NET)添加 if 语句。

关于c# - DataAnnotations WriteOnly 如果属性 == null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7065133/

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