Если вся необходимая информация уже содержится в типе свойства, я не могу понять, как введение нового атрибута является хорошей идеей. Помимо всего прочего, вы можете легко забыть обновить атрибут при изменении типа данных. Вы начинаете с:
[Int32Type]
int Foo { get; set; }
, тогда вам действительно нужно, чтобы он был long
, но не забудьте изменить атрибут:
[Int32Type]
long Foo { get; set; }
Теперь вы, вероятно, будете действовать неправильно по этому поводу.
Если вы действительно добавляете информацию - например, если нет все int
свойства должны обрабатываться одинаково - это другое дело.