2016-05-04 65 views
2

我是一名學生和初學者開發人員。通過Resources.Messages使用數據註釋C#

我在我的工作場所項目..我使用數據註釋進行驗證...但我需要使用Resources.Messages來實現動態錯誤消息。在這裏做了什麼,我試圖做一個例子:

[Required (ErrorMessage = (string.Format(Messages.MissingParameter, Messages.Ad)))] 
    [Range(0, long.MaxValue)] 
    public long? Ad { get; set; } 

在這種情況下,缺少的參數是如下字符串「參數{0}是必需的」,並Messages.Ad與internacionalized字段中輸入字符串。

洙,如果我用數據詮釋,有幾個解決方案,如使用ErrorResource ......(好像是這個RegularExpressions例子 - >Why can't I use resources as ErrorMessage with DataAnnotations?

但這些都不考慮使用字符串傳遞問題傳遞最終字符串的參數(如string.format所示)

所以,我的問題是:如何使用複雜的國際化字符串與數據註釋。

回答

1

您不能這樣做,因爲您必須使用能夠用作屬性參數的特定值。

MSDN - Attributes Tutorial C#

屬性參數被限制爲以下類型的恆定值:

  • 簡單類型(布爾,字節,字符,短,整型,長整型,浮點和雙)
  • 的System.Type
  • 枚舉
  • 對象(該參數對象類型的屬性參數必須是上述類型之一的恆定值)
  • 任何上述類型的一維陣列