Start Debugging

Тег: csharp

316 статей · Страница5из32

Как написать статический член расширения, применимый ко всем типам enum в C# 14
Объявите обобщённый блок extension с ограничением struct, Enum и получите Status.Values, Status.Count и Status.Parse для каждого enum в решении. Форма получателя, ловушки CS0704 и CS0428 и почему Enum.GetValues нужно кешировать.
2026-08-23 ef-corelinqcsharp
Как писать переиспользуемые предикаты LINQ, которые EF Core транслирует в Where, Select и OrderBy
Вспомогательный метод, возвращающий bool, бросает "could not be translated". Expression<Func<T, bool>> не бросает. Разбираем, как компоновать, вкладывать и переиспользовать деревья выражений в EF Core 11 без LINQKit, с реальным SQL для каждого случая.
Semantic Kernel 1.80.0 запрещает плагинам OpenAPI следовать за редиректами
В Semantic Kernel .NET 1.80.0 появилось ломающее изменение: HttpClient по умолчанию у плагина OpenAPI больше не следует за редиректами, что закрывает обход SSRF-защиты. Что именно поменялось и почему собственный HttpClient снова открывает дыру.
Как скачать файл из компонента Blazor без взаимодействия с JavaScript
Обойдитесь без JS-модуля downloadFileFromStream. Отрисуйте якорь с атрибутом download, указывающий на конечную точку minimal API с TypedResults.File, либо отправьте POST обычной HTML-формой с AntiforgeryToken. Разбираем, почему именно атрибут download мешает улучшенной навигации Blazor перехватить клик, почему data-enhance молча выбрасывает файл, и ловушку с cookie против bearer.
Как заставить System.Text.Json игнорировать свойство с модификатором required
[JsonIgnore] на члене с required выбрасывает InvalidOperationException: marked required but does not specify a setter. Почему эти две возможности конфликтуют и четыре способа всё же проигнорировать свойство, измерено на .NET 10.
Как использовать IDbContextFactory<T> из singleton-сервиса в Blazor
Singleton не может внедрить DbContext, но может внедрить IDbContextFactory<T>, потому что AddDbContextFactory по умолчанию регистрирует фабрику как singleton. Создавайте и освобождайте по одному контексту на вызов и никогда не сохраняйте экземпляр.
System.IO.Compression наконец читает и пишет зашифрованные ZIP в .NET 11 Preview 7
.NET 11 Preview 7 добавляет в System.IO.Compression записи ZIP, защищённые паролем, с поддержкой AES-256, типами опций для операций над целыми каталогами и одной ошибкой с пустыми файлами, которая уже исправлена в main.
Scalar против Swagger UI для документации OpenAPI в ASP.NET Core 11
Scalar отдаёт 1.02 МиБ сжатого gzip JavaScript и заметно более удобный конструктор запросов. Swagger UI отдаёт 514 КиБ и рендерит OpenAPI 3.2, который .NET 11 теперь генерирует по умолчанию. Измеренные объёмы, разрыв по 3.2, маршрутизация через конечные точки с обеих сторон и детали аутентификации, которые решают выбор.
Назад Вперёд