tag:blogger.com,1999:blog-5422036137568788209.post22130479020647687..comments2023-02-28T12:04:19.260+03:00Comments on handcode: Marker Interface против Custom attributesИлья Дубаденкоhttp://www.blogger.com/profile/03756815679135463187noreply@blogger.comBlogger10125tag:blogger.com,1999:blog-5422036137568788209.post-27475583047028929652010-08-18T12:32:56.600+04:002010-08-18T12:32:56.600+04:00Я бы вообще не хранил в сообщении информацию о том...Я бы вообще не хранил в сообщении информацию о том, требуется его логировать или нет.<br />По-моему лучше когда список типов логируемых сообщений хранится в конфигурационном файле и при старте загружается оттуда.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-61030613792973124692010-08-05T23:10:59.262+04:002010-08-05T23:10:59.262+04:00Согласен с Sergun - реально никакой проблемы нет, ...Согласен с Sergun - реально никакой проблемы нет, т.к. оба подхода валидны, хотя конечно `is` всяко лучше чем reflection. Лично я не использую ни то ни другое - я фанат конфигурируемых контейнеров, в которых потом можно "передумать" и поменять подход без особых телодвижений.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-1482744131163573432010-08-05T19:34:28.717+04:002010-08-05T19:34:28.717+04:00А по мне - проблема надумана. Оба подхода стоят др...А по мне - проблема надумана. Оба подхода стоят друг друга и тут в большей степени выбор сводится к вкусам конкретного разработчика/архитектора.<br />Хотя я обычно предпочитаю использовать атрибуты.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-70026364823001699112010-08-05T19:31:05.621+04:002010-08-05T19:31:05.621+04:00@veselovski
Возможно ответ предпочтения подхода кр...@veselovski<br />Возможно ответ предпочтения подхода кроется в сравнении быстродействии/сложности двух конструкций:<br />"msg is ILogMarker"<br />против<br />"msg.GetType().IsDefined(typeof(LogAttrubute), false)"Илья Дубаденкоhttps://www.blogger.com/profile/03756815679135463187noreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-82632997329524154072010-08-05T18:44:33.606+04:002010-08-05T18:44:33.606+04:00О том, что оба подхода нормальные (не монстроидаль...О том, что оба подхода нормальные (не монстроидальные) говорит тот факт, что они используются в самом .NET Framework.<br />Например, интерфейс INamingContainer и атрибут Serializable.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-59504143072752476672010-08-05T16:57:32.797+04:002010-08-05T16:57:32.797+04:00Илья, как-то монстроидально это выглядит. Как по м...Илья, как-то монстроидально это выглядит. Как по мне static field в таком случае практичней (что не означает - "правильнее" :) ). <br /><br />Хотя Вы правы что к самому message это никакого отношения не имеет. И его там быть не должно.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-6470422140995129572010-08-05T16:47:31.996+04:002010-08-05T16:47:31.996+04:00Думаю надо расширить атрибут каким-нибудь свойство...Думаю надо расширить атрибут каким-нибудь свойством-условием:<br />class LogAttrubute : Attribute<br />{<br />/* Добавить свойство-условие, при выполнении которого осуществлять логирование */<br />}<br />а в OnReceive, получать атрибут у msg и проверять.Илья Дубаденкоhttps://www.blogger.com/profile/03756815679135463187noreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-14132217202381494832010-08-05T16:37:48.143+04:002010-08-05T16:37:48.143+04:00Звучит логично с точки зрения проектирования. :)
Т...Звучит логично с точки зрения проектирования. :)<br />Только вот как быть если надо к примеру логированием "динамично" управлять? В ран-тайме разве можно добавить custom attribute? (про интерфейс я вообще молчу). Как быть?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-49932640062752155752010-08-05T16:28:20.249+04:002010-08-05T16:28:20.249+04:00@mphome
IsRequiredLogging - не относится конкретно...@mphome<br />IsRequiredLogging - не относится конкретно к типу Message, это ведь как бы служебная информация, зачем ее примешивать?Илья Дубаденкоhttps://www.blogger.com/profile/03756815679135463187noreply@blogger.comtag:blogger.com,1999:blog-5422036137568788209.post-17707541980269129742010-08-05T16:11:00.171+04:002010-08-05T16:11:00.171+04:00А просто field IsRequiredLogging в message добавит...А просто field IsRequiredLogging в message добавить не судьба?Anonymousnoreply@blogger.com