Start Debugging

Тег: csharp

341 статей · Страница8из35

Как скачать файл из компонента 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, маршрутизация через конечные точки с обеих сторон и детали аутентификации, которые решают выбор.
Zstandard против Brotli и Gzip: сжатие ответов в .NET 11
Zstandard это правильный вариант по умолчанию для динамических ответов API в .NET 11, но не с тем уровнем качества, с которым поставляется провайдер ASP.NET Core. Бенчмарки на реальных JSON-данных показывают, почему качество 1 обгоняет качество 3 по умолчанию и по размеру, и по нагрузке на CPU, когда Brotli всё ещё выигрывает и почему Gzip остаётся только как запасной вариант ради совместимости.
Как показать модальное окно в .NET MAUI 11
Модальным окном в .NET MAUI 11 называют две совершенно разные вещи. PushModalAsync даёт модальную страницу на всех платформах. Настоящего окна операционной системы, блокирующего окно-владельца, в MAUI нет вообще, поэтому здесь разобрана связка WinUI OverlappedPresenter.IsModal и Win32-дескриптора владельца, которая реально работает в Windows, и что делать в Mac Catalyst.
Как настроить сериализацию System.Text.Json, сгенерированную генератором исходного кода, с помощью модификатора type info resolver
Как подключить модификатор JsonTypeInfo к сгенерированному JsonSerializerContext в .NET 11: почему new MyContext(options) молча его отбрасывает, рабочая схема с WithAddedModifier, быстрый путь, который вы теряете (с измерениями), и ловушка политики именования, из-за которой модификатор ничего не делает.
Назад Вперёд