|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
user7320Например, есть класс с атрибутами Код: c# 1. 2. 3. 4. 5. 6.
Хочу, чтобы доступ к значениям атрибутов был типа такого: Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9.
Т. е. состав коллекции Attributes должен зависеть от установленных атрибутов и значений их параметров. Как сделать? У меня соображение такое - для типов коллекция атрибутов должна быть статическим членом типа, а для экземпляров... не знаю какой. Для первого случае в моём коде получается какая-то обёртка над интовым свойством MyProperty, а для второго - просто коллеция Attributes, у которой атрибуты рассортированы в объекты с именами, совпадающими с именами свойств класса MyClass. вы не совсем (или скорее всего совсем НЕ ) разобрались что вам нужно. Метаданные нужны для кого, что бы получить информацию о классе в рантайме, при том что в дизайнтайме она неизвестна. Вы же зная все о классе в дизайнтайме зачем-то мутитесь с аттрибутами МСУ"Проблема" надумана и высосана из пальца. .NET дает возможность использовать атрибуты, есть варианты: использовать их не использовать их совершенно согласен ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 12:27 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
pationрантайм / дизайнтайм Чётко подмечено, +1 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 12:29 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
pationМетаданные нужны для кого, что бы получить информацию о классе в рантайме, при том что в дизайнтайме она неизвестна.Дизайнер умеет "лазить" в скомпилированные сборки текущего проекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 12:36 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
МСУ"Проблема" надумана и высосана из пальца. .NET дает возможность использовать атрибуты, есть варианты: использовать их не использовать их Т. е. вы согласны, что в Дотнете возможность устанавливать значения атрибутов реализована легко и удобно, а возможность считывать эти значения - трудно и неудобно? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 12:48 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
user7320 ??? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 12:54 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
Алексей КpationМетаданные нужны для кого, что бы получить информацию о классе в рантайме, при том что в дизайнтайме она неизвестна.Дизайнер умеет "лазить" в скомпилированные сборки текущего проекта. Я знаю - потому что я и дизайнер, и программист. А так я хотел вытащить данные из атрибутов модели в обычные данные модели представления. Столкнулся со сложностями - просто так фиг достанешь их. Точнее, достать-то можно, только хранить как и где, чтобы много кода не писать. Мне тут подсказали всякие штуки с дженериками - я пока их на уровне модели представления ещё не пробовал. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 12:57 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
Алексей Кuser7320 ??? Ну так там писать чего-то надо, чтобы вытащить значения, а чтобы их туда (в атрибуты) поместить, почти ничего писать не надо - квадратную скобку открыл, слово написал и давай значения забивать. Вот бы так и получать эти значения! ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 12:58 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
user7320Алексей Кпропущено... Дизайнер умеет "лазить" в скомпилированные сборки текущего проекта. Я знаю - потому что я и дизайнер, и программист.Имеется в виду не человек, а редактор форм в Visual Studio. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 13:00 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
user7320Т. е. вы согласны, что в Дотнете возможность устанавливать значения атрибутов реализована легко и удобно, а возможность считывать эти значения - трудно и неудобно? я, например, несогласен ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 13:02 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
Изопропилuser7320Т. е. вы согласны, что в Дотнете возможность устанавливать значения атрибутов реализована легко и удобно, а возможность считывать эти значения - трудно и неудобно? я, например, несогласен Это должно решаться голосованием... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 13:03 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
user7320Ну так там писать чего-то надо, чтобы вытащить значения, а чтобы их туда (в атрибуты) поместить, почти ничего писать не надо - квадратную скобку открыл, слово написал и давай значения забивать. Вот бы так и получать эти значения!Что мешает вбить название поля сразу в XAML? Часто одного названия поля недостаточно. Оно может отличаться, если поле расположено в таблице, на форме редактирования, в детализации объекта и т. п. "Овчинка выделки не стоит" (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 13:10 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
user7320МСУ"Проблема" надумана и высосана из пальца. .NET дает возможность использовать атрибуты, есть варианты: использовать их не использовать их Т. е. вы согласны, что в Дотнете возможность устанавливать значения атрибутов реализована легко и удобно, а возможность считывать эти значения - трудно и неудобно? И то и другое удобно и не вызывает никаких трудностей. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 13:15 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
Алексей КЧто мешает вбить название поля сразу в XAML? Мешает его отсутствие. Вот у меня, к примеру, есть aspx, ascx, schtml. А xaml нету, в чем я не прав? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 13:18 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
МСУАлексей КЧто мешает вбить название поля сразу в XAML? Мешает его отсутствие. Вот у меня, к примеру, есть aspx, ascx, schtml. А xaml нету, в чем я не прав? "У всех свои недостатки" (с) ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 13:20 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
Изопропилuser7320Т. е. вы согласны, что в Дотнете возможность устанавливать значения атрибутов реализована легко и удобно, а возможность считывать эти значения - трудно и неудобно? я, например, несогласен МСУuser7320пропущено... Т. е. вы согласны, что в Дотнете возможность устанавливать значения атрибутов реализована легко и удобно, а возможность считывать эти значения - трудно и неудобно? И то и другое удобно и не вызывает никаких трудностей. Вот я устанавливаю значения атрибута: Код: c# 1. 2. 3. 4. 5.
Как видите, я делаю это в одну строчку за - сколько там? - скажем, 60 символов. Вы сможете за 60 символов достать эти два свойства? Нет, вы будете писать рефлексивный код вида Код: c# 1.
и это только для одного свойства одного атрибута. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 16:03 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
Теперь представьте, что вместо геттеров и сеттеров в классах вы бы писали все эти бесконечные GetProperty(string propertyName). Почему доступ к метаданным реализован не также удобно, как к данным объектов - через точку или там индекс? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 16:05 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
user7320Написать класс-хелпер с расширяющими методами под Ваши типовые задачи с атрибутами? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 16:08 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
user7320Теперь представьте, что вместо геттеров и сеттеров в классах вы бы писали все эти бесконечные GetProperty(string propertyName). Почему доступ к метаданным реализован не также удобно, как к данным объектов - через точку или там индекс? Вы никуя не поняли атрибуты в dotNet реализованы так, как должны быть реализованы, вы же пытаетесь повесить на них функциональность статических свойств читать вышенаписанное 10 раз перез сном, до полного просветления ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 16:29 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
Алексей Кuser7320Написать класс-хелпер с расширяющими методами под Ваши типовые задачи с атрибутами? Я вот, когда атрибуты задавал, ничего не писал расширяющего. А чтобы достать - расширять надо? - Фи. pationuser7320Теперь представьте, что вместо геттеров и сеттеров в классах вы бы писали все эти бесконечные GetProperty(string propertyName). Почему доступ к метаданным реализован не также удобно, как к данным объектов - через точку или там индекс? Вы никуя не поняли атрибуты в dotNet реализованы так, как должны быть реализованы, вы же пытаетесь повесить на них функциональность статических свойств читать вышенаписанное 10 раз перез сном, до полного просветления Да, хочу. Мне нужно к цифирям (инты там, даблы) приделать свойства (максимумы там, минимумы и прочие). А чтобы эти цифири остались цифирями и их было удобно использовать в расчётах (чтобы не писать как тут http://www.sql.ru/forum/actualutils.aspx?action=gotomsg&tid=1003579&msg=13905106 ), я приделал к ним атрибуты, которые как бы не видно (а, значит, они не мешают), пока просто в расчётах используешь, но когда надо, я хочу быстро и удобно их получить - без всяких расширяющих и прочих конвертеров, а то я и сам могу понаписать... целый фреймворк могу понаписать, да. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 17:05 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
user7320Алексей Кпропущено... Написать класс-хелпер с расширяющими методами под Ваши типовые задачи с атрибутами? Я вот, когда атрибуты задавал, ничего не писал расширяющего. А чтобы достать - расширять надо? - Фи.Обиделся? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 17:23 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
user7320Как видите, я делаю это в одну строчку за - сколько там? - скажем, 60 символов. Вы сможете за 60 символов достать эти два свойства? Нет, вы будете писать рефлексивный код вида И что дальше-то? Бери и проверяй рефилексией все свойства. Код: c# 1.
"Движок" пишется один раз (в виде хелпера или в виде расширения) и используется в программе по недобности. С одной стороны ты хочешь динамику, причем с сотней различных по типу атрибутов. С другой стороны ты орёшь, что неудобно работать с такой разносолой динамикой. Извини, .NET не умеет гадать на кофе. Ты определись с задачей, что конкретно (!) нужно для задачи, скорей всего у тебя с архитектурой затык. А то ты так неумело пытаешься понапридумывать всего и чтоб оно всё гладко решалось одной строчкой кода. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 17:29 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
user7320целый фреймворк могу понаписать, да. Код: c# 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 17:30 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
Я так полагаю, что следующим топиком от user7320 будет вопрос про динамическое изменение значений атрибутов во время исполнения программы. PS. Вдруг локализация понадобится, а тут же все на атрибутах завязано. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 17:51 |
|
Как сделать, чтобы доступ к атрибутам был как к членам класса?
|
|||
---|---|---|---|
#18+
ИМХО - попытки написать что-то универсальное, на все случаи жизни - детская болезнь в программизьме ... |
|||
:
Нравится:
Не нравится:
|
|||
11.02.2013, 21:09 |
|
|
start [/forum/topic.php?fid=20&msg=38145857&tid=1405185]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
54ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
others: | 315ms |
total: | 473ms |
0 / 0 |