Как создать обертки для атрибутов свойств? - PullRequest
0 голосов
/ 14 января 2010

В ASP.NET MVC мы можем использовать пространство имен System.ComponentModel.DataAnnotations, чтобы помочь с проверкой ввода формы / модели.

Если я не хотел быть привязанным к какой-либо конкретной среде, например, xVal, EntLib Val Block и т. Д., И я хотел создать в основном классы-обертки, чтобы защитить мой код от прямой зависимости, как этого добиться? *

Так что вместо свойства моей модели это выглядит так:

[Required]
property string Name {get;set;}

Я хочу, чтобы он был привязан к моему коду, где будет реализована предпочтительная среда валидации.

[MyRequired]
property string Name {get;set;}

1 Ответ

1 голос
/ 14 января 2010

Один из способов сделать это - извлечь свой атрибут из базовых. EG:

public class MyRequiredAttribute : EntLib.RequiredAttribute { }

Таким образом, вы могли бы позже изменить класс MyRequiredAttribute, чтобы он производился от другого базового класса, и остальная часть вашего кода не должна была бы изменяться (однако вам, вероятно, потребуется перекомпилировать его). Код EntLib (и т. Д.), Который сканирует на EntLib.RequiredAttribute, должен по-прежнему выбирать ваш производный атрибут

Это зависит от того, что базовый атрибут не запечатан.

...