Start Debugging

Тег: csharp

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

Как прочитать ответ ProblemDetails по RFC 9457 из типизированного HttpClient, не ссылаясь на ASP.NET Core
В BCL нет типа ProblemDetails, а добавление FrameworkReference на Microsoft.AspNetCore.App приводит к тому, что клиент отказывается запускаться в контейнере, где есть только среда выполнения. Вот модель на 20 строк, DelegatingHandler, который превращает problem+json в типизированное исключение, и миф про content-type, который до сих пор повторяет большинство ответов.
Как найти обработчики async void, вызывающие ANR в Android-приложении на .NET MAUI
Play Console сообщает, что доля ANR превысила 0.47%, и выдаёт нативную трассировку, забитую кадрами libcoreclr.so. Разбираем, как перейти от этой бесполезной трассировки к конкретному обработчику события async void, заблокировавшему главный поток: printer для Looper, обёртка SynchronizationContext, называющая машину состояний, и dotnet-trace через dsrouter.
Что такое режим рендеринга в Blazor и какой из них выполняет мой компонент?
Режим рендеринга определяет, где выполняется компонент Razor и является ли он интерактивным. Здесь разобраны четыре режима в .NET 11, правила наследования, определяющие, что получит ваш компонент, и свойства RendererInfo и AssignedRenderMode, которые во время выполнения показывают, какой режим победил.
Что такое перехватчик EF Core и когда он нужен?
Перехватчик EF Core - это класс, который EF вызывает до и после операций вроде выполнения команды или SaveChanges и который может изменить или подавить их, а не только наблюдать. Здесь разобраны семь точек перехвата в EF Core 11, правила регистрации и времени жизни, а также случаи, когда фильтр запроса или обычное журналирование подходят лучше.
Возврат Task напрямую против проброса через async/await в методе репозитория на C#: что выбрать?
Отказ от async/await в пробрасывающем методе репозитория экономит около 6 нс и 72 байта, а стоит вам кадра стека, семантики try/catch и безопасного освобождения ресурсов. Оставляйте return await, если метод не является чистым пробросом на измеренном горячем пути.
Перевод решения .NET на Central Package Management с Directory.Packages.props
Перенесите все версии пакетов из файлов csproj в один Directory.Packages.props. Разбираем скрипт-генератор, который сводит конфликтующие версии с настоящей semver-сортировкой, diff графа зависимостей до и после, доказывающий, что именно изменилось, NU1008/NU1010/NU1013/NU1507, транзитивное закрепление, GlobalPackageReference, VersionOverride и почему вложенный Directory.Packages.props незаметно перекрывает корневой.
Как отрендерить заголовок, уровень которого (h1-h6) выбирается во время выполнения, в компоненте Blazor
В Razor нет синтаксиса для переменного имени тега, а DynamicComponent рендерит только типы компонентов. Переопределите BuildRenderTree и вызовите builder.OpenElement(0, $"h{level}"). Разбираются проброс атрибутов, почему имя тега нужно ограничивать до того, как оно попадёт в DOM, почему смена уровня вырывает элемент из DOM даже с @key, и вариант с автоматическим уровнем на каскадном значении.
Назад Вперёд