gpt4 book ai didi

c# - 是否可以在 C# 中继承数据注释?

转载 作者:太空狗 更新时间:2023-10-29 23:07:36 26 4
gpt4 key购买 nike

是否可以继承其他类中的“密码”数据注解?

    public class AccountCredentials : AccountEmail
{
[Required(ErrorMessage = "xxx.")]
[StringLength(30, MinimumLength = 6, ErrorMessage = "xxx")]
public string password { get; set; }
}

其他类:

    public class PasswordReset : AccountCredentials
{
[Required]
public string resetToken { get; set; }
**["use the same password annotations here"]**
public string newPassword { get; set; }
}

由于 API 调用,我必须使用不同的模型,但希望避免为同一字段维护两个定义。谢谢!

加法:类似

[UseAnnotation[AccountCredentials.password]]
public string newPassword { get; set; }

最佳答案

考虑 favoring composition over inheritance并使用 Money Pattern .

    public class AccountEmail { }

public class AccountCredentials : AccountEmail
{
public Password Password { get; set; }
}

public class PasswordReset : AccountCredentials
{
[Required]
public string ResetToken { get; set; }

public Password NewPassword { get; set; }
}

public class Password
{
[Required(ErrorMessage = "xxx.")]
[StringLength(30, MinimumLength = 6, ErrorMessage = "xxx")]
public string Value { get; set; }

public override string ToString()
{
return Value;
}
}

也许它已成为我的金锤子,但最近我在这方面取得了很大的成功,尤其是在创建基类或采用共享行为并将其封装在对象中之间进行选择时。继承可能会很快失控。

关于c# - 是否可以在 C# 中继承数据注释?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22767350/

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