gpt4 book ai didi

c# - 数据注释验证属性中的 string.Format

转载 作者:行者123 更新时间:2023-11-30 20:02:19 28 4
gpt4 key购买 nike

有没有办法使用格式化字符串而不是直接常量来设置数据注释消息,

我需要像下面的代码一样设置必填字段 ErrorMessage,但它给了我一个错误。

[Required(ErrorMessage = string.Format(SystemMessages.Required, "First Name"))]
public string FirstName { get; set; }

SystemMessages 是一个常量文件,它有以下代码,

public const string Required = "{0} is required.";

有没有办法设置这样的属性?

最佳答案

string.Format 结果不是编译时常量,无法由编译器求值。属性值限于

constant expression, typeof expression or array creation expression of an attribute parameter type.

更正式地说,您可以在 msdn 找到限制说明。 .格式化字符串不适合其中任何一个,它们是:

  • 简单类型(bool、byte、char、short、int、long、float 和 double)
  • 字符串
  • 系统类型
  • 枚举
  • 对象(对象类型的属性参数的参数必须是上述类型之一的常量值。)
  • 任何上述类型的一维数组

充其量你可以尝试类似的东西:

[Required(ErrorMessage = "First Name" + Required)]
public string FirstName { get; set; }


public const string Required = " is required.";

关于c# - 数据注释验证属性中的 string.Format,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16913732/

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