воскресенье, 16 февраля 2014 г.

Регистрация windows — сервисов

Наверное, многим программистам приходится иметь дело с windows—сервисами. Часто - с теми, которые пишутся ими самими или коллегами. Такие сервисы имеют интересную особенность - разрабатывая их или обращаясь к ним в своём коде часто удобно запускать сервисы как обычные приложения (как правило, консольные, но иногда даже и с неким графическим интерфейсом). О том, как наилучшим образом обеспечить эту возможность и пойдёт речь.

четверг, 25 июля 2013 г.

Оператор уточнения типа или static cast в C#

Нередко в моих программах на C# возникает необходимость уточнить тип переменной, то есть попросить компилятор посчитать, что тип переменной не тот, что объявлен, а один из базовых.

пятница, 25 января 2013 г.

Полезные мелочи #1

Недавно мне понадобилось проверить результат компиляции (есть ли ошибки-предупреждения и какие) простого и небольшого фрагмента C# кода будующим компилятором - Microsoft® “Roslyn”.

воскресенье, 20 января 2013 г.

Атрибуты: откуда их брать

Очередной пост из серии "Что такое хорошо и что такое плохо?". В этот раз о том, как правильно извлекать .NET-атрибуты из метаданных. К сожалению, многие для этой задачи используют интерфейс ICustomAttributeProvider, точнее его реализации в классе Assembly и наследниках класса MemberInfo: Type, PropertyInfo и других.

четверг, 20 декабря 2012 г.

Типизированное клонирование

Сегодня хочется рассказать о том, как описать в иерархии типов возможность (интерфейс) клонирования объектов. Подразумевается, что программист уже знает, каким именно образом будет реализован код клонирования (тут вариантов много и выбор конкретного зависит от очень большого числа требований и возможностей) и речь пойдёт о том, как бы с максимальным удобством для пользователя кода всё оформить.