использование атрибутов против обычных свойств получения - PullRequest
0 голосов
/ 23 июля 2011

Мне нужно найти все свойства определенного объекта, которые не доступны для чтения и основаны на их типе, сделать что-то, что я имею в виду, если тип свойства int, мне нужно сделать sth, а если это строка, я должен сделать что-то еще

используя отражение и получим этот тип и условно я могу создать объект, который может делать то, что я хочу, например, если тип свойства - Int, я могу создать экземпляр класса IntType: IType class

, но яесть другой вариант: установить атрибут для каждого свойства и на основе этих атрибутов найти подходящий IType. Я просто не могу решить, какой из них лучше?

1 Ответ

2 голосов
/ 23 июля 2011

Если вся необходимая информация уже содержится в типе свойства, я не могу понять, как введение нового атрибута является хорошей идеей. Помимо всего прочего, вы можете легко забыть обновить атрибут при изменении типа данных. Вы начинаете с:

[Int32Type]
int Foo { get; set; }

, тогда вам действительно нужно, чтобы он был long, но не забудьте изменить атрибут:

[Int32Type]
long Foo { get; set; }

Теперь вы, вероятно, будете действовать неправильно по этому поводу.

Если вы действительно добавляете информацию - например, если нет все int свойства должны обрабатываться одинаково - это другое дело.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...