Инициализатор объекта + await = ошибка

Иногда случаются ситуации, когда ошибки появляются, как говорится, на ровном месте. Давайте рассмотрим один из таких случаев. А именно, когда использование инициализатора объекта приводит к некорректному поведению программы.

Читать дальше...

Основы Code Contracts (часть 2)

C# logoДавайте посмотрим как можно определить контракт для интерфейса. Кроме того, разберемся как настраивать реакцию на ошибки под собственные потребности.

Читать дальше...

Основы Code Contracts

C# logoCode Contracts – новинка, появившаяся с выходом четвертой версии .NET. Это библиотека, реализующая идею программирования по контракту. Несколько упрощая можно сказать, что её суть заключается в установке условий, которые должны соблюдать параметры методов и свойства объекта.

Читать дальше...

Именованные параметры - повышаем читабельность кода

Наверное каждый разработчик достаточно часто сталкивается с кодом вида:

List<Products> productList = GetProductsById(id, 8, 15);
При беглом прочтении часто возникает вопрос: а что обозначают числа 8 и 15?

Читать дальше...

Приспособленец. Удаление неиспользуемых экземпляров из пула

При описании шаблона Приспособленец для упрощения примера не был рассмотрен механизм удаления неиспользуемых экземпляров. Рассмотрим вариант реализации этой функциональности на C#.

Читать дальше...

Динамический декоратор. Часть 3 – Исходный код

Нет желания загружать еще один экземпляр Visual Studio или скачивать проект, а взглянуть на исходный код интересно? Тогда вот он:

Читать дальше...

Динамический декоратор. Часть 2 – Dynamic proxy

В прошлой части, используя dynamic и reflection, была решена проблема динамической поддержки методов и свойств декорируемого объекта. Но осталась еще одна: необходимо реализовать поддержку заданного интерфейса. Для это используем ...

Читать дальше...

Динамический декоратор. Часть 1 – dynamic и reflection

При разработке Декоратора, переадресация вызовов к декорируемому объекту достаточно скучная и рутинная работа. Для её упрощения существуют утилиты, генерирующие необходимый код.

Но есть другой подход – использовать в качестве базового класса Динамический декоратор, который обеспечит автоматическую переадресацию вызовов. Это стало возможно c появлением dynamic в .NET 4. Кроме того, потребуется интересный вариант реализации еще одного шаблона – Динамический прокси.

Читать дальше...

Удаленный прокси с использованием .NET Remoting

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

Читать дальше...