пятница, 21 июля 2017 г.

Приведение к нужному типу объекта, полученного из JSON

Комментарий в коде показывает место, в котором порой допускают ошибку в процессе решения обозначенной задачи.

вторник, 10 января 2017 г.

Многопоточность и GUI

Маленький пример использования многопоточности в приложениях, содержащих графический пользовательский интерфейс (GUI). Продемонстрировано два способа обращения к элементам пользовательского интерфейса из рабочего потока в UI-поток. Графический интерфейс при этом не "подвисает".

воскресенье, 20 ноября 2016 г.

О том, как можно генерировать локализованные версии справки

Данная заметка рассказывает о том, как можно генерировать локализованные версии справочной системы на основе нашего программного кода (в данном случае написанном на C#). Если кто-то знает более удобный способ - с интересом почитаю о нём в комментариях к этой заметке.

понедельник, 14 ноября 2016 г.

NuGet-пакет для Revit 2017

На https://www.nuget.org не нашёл от Autodesk NuGet-пакетов для Revit 2017. Соответственно, сделал свой.

понедельник, 10 октября 2016 г.

CHM: о наименовании каталогов и файлов исходников.

Недавно столкнулся с проблемой, когда Help and Manual не мог успешно компилировать мой проект в документацию CHM-формата. Причём тот же самый проект успешно опубликовывался в PDF-версию.

суббота, 20 августа 2016 г.

Динамический вызов функций неуправляемых DLL

В .NET-атрибутах можно указывать только константные выражения. Т.о. атрибуту DllImport нужно указывать имя библиотеки статически, дабы это имя было известно на этапе компиляции. Порой это порождает уродливые конструкции, разрастающиеся как снежный ком, по мере появления новых версий AutoCAD. Наглядный тому пример можно увидеть здесь в коде Александра Ривилиса: по мере появления AutoCAD 2018, 2019 и т.д. - этот код придётся каждый раз дописывать.

среда, 10 августа 2016 г.

Работа с реестром в операционных системах Windows (часть 2)

Когда-то здесь я выкладывал инструменты по работе с реестром для .NET 3.5 SP1. Обнаружилось, что начиная с .NET 4.0 сигнатура нужных для обозначенного кода конструкторов класса RegistryKey была изменена. Как следствие - если наша сборка, скомпилированная под .NET 3.5 SP1 в дальнейшем окажется загруженной в .NET 4.0 (или любую более новую), то мы будем получать исключение времени выполнения при вызове некоторых методов опубликованного кода.