На данный момент я пишу свой собственный ValidationAttribute для моего приложения mvc.Передача enum/скомпилированное значение в качестве параметра для конструктора
У меня есть следующий ValidationAttribute код.
[AttributeUsage(AttributeTargets.Property | AttributeTargets.Class | AttributeTargets.Parameter, AllowMultiple = false)]
public class RecordAttribute: ValidationAttribute
{
public UniqueDataRecordAttribute(string primaryKeyProperty)
{
}
}
Я передаю имя поля моего основного свойства как строку в свой атрибут и сделаю проверку. т.д .:
[RecordAttribute("CustomerID")]
public class CustomerMetaData
{
}
Это работает для меня, но я буду столкнуться с проблемами, если имя первичного ключа изменится.
Я создал перечисление, которое содержит атрибут первичного ключа. Но когда я пытаюсь передать его компилятор говорит мне:
Аргумент атрибут должен быть константным выражением, TypeOf выражения или создания массива выражения типа параметра атрибута
Я также попытался это подход: Associating enums with strings in C#, но эффект тот же.
Есть ли какой-либо шанс передать enum (или другое скомпилированное значение) моему атрибуту?
Спасибо
Почему бы имя изменения ключа первичной. Такого рода вещи вы исправляете, чтобы они не менялись ....? –