Start Debugging

Тег: dotnet

422 статей · Страница1из43

2026-10-25 aspiredotnetci
Aspire 13.6.4 восстанавливает вызовы создания DCP, завершившиеся по таймауту, вместо того чтобы переводить ресурс в состояние сбоя
Aspire 13.6.4 больше не отправляет ресурс в FailedToStart из-за одного вызова создания DCP, завершившегося по таймауту или с HTTP 504, и открывает три таймаута DcpPublisher, которые можно увеличить на медленных CI-раннерах.
Agent Framework 1.26: конечные точки AG-UI больше не превращают scoped-агентов в синглтоны
Microsoft Agent Framework 1.26.0 заставляет MapAGUIServer разрешать keyed AIAgent, его AgentSessionStore и провайдер ключа изоляции на каждый запрос, а также добавляет перегрузку с селектором, который выбирает агента по HttpContext.
Playwright .NET 1.64 добавляет Locator.Within(), и это цепочка Locator, прочитанная задом наперёд
Microsoft.Playwright 1.64 добавляет Locator.Within(), чтобы можно было написать 'эта кнопка внутри того диалога'. Быстрая проверка показывает, что он строит ровно тот же локатор, что и parent.Locator(child), включая разрешение Nth() для каждого родителя.
Lazy<T> vs LazyInitializer.EnsureInitialized vs блокировка с двойной проверкой в C#
По умолчанию используйте Lazy<T>: он выполняет фабрику один раз, кеширует исключения, а чтение после инициализации слишком дёшево, чтобы его можно было измерить. LazyInitializer.EnsureInitialized подходит, когда вы лениво заполняете много полей или ячеек массива и не можете позволить себе лишний объект на каждое значение. Ручная блокировка с двойной проверкой на .NET 10 почти никогда не оправдана.
MAUI 10.0.120: BlazorWebView наконец принимает перетаскивание файлов в Windows и перетаскивание изображений в Android
.NET MAUI 10.0.120 включает AllowDrop для BlazorWebView в Windows и регистрирует AndroidX DropDataContentProvider в Android, поэтому зоны drop в Blazor Hybrid работают без платформенного кода. Что изменилось, новый переключатель MauiEnableAndroidWebViewDragDrop и предупреждение MAUI1002.
Исправление: HttpProtocolException: The HTTP/2 server reset the stream. HTTP/2 error code 'PROTOCOL_ERROR'
Удалённая сторона отправила RST_STREAM с PROTOCOL_ERROR для одного запроса, и HttpClient не повторяет его сам. Выясните, какой узел сбросил поток, исправьте отклонённый запрос, повторяйте только идемпотентные вызовы или переведите этот узел на HTTP/1.1.
2026-10-21 mcpdotnetcsharp
MCP C# SDK 2.3: McpClient.ServerInfo теперь допускает null, и ваша сборка это заметит
ModelContextProtocol 2.3.0, выпущенный 20 октября 2026 года, меняет тип McpClient.ServerInfo с Implementation на Implementation?, потому что серверы 2026-07-28 могут не указывать свою идентичность в server/discover. Почему так, что ломается при warnings-as-errors и как это исправить одной строкой.
Что происходит с истёкшей записью MemoryCache и когда она на самом деле удаляется из памяти?
Истёкшая запись MemoryCache не удаляется по таймеру. Она остаётся в словаре, пока к ней не обратится чтение, не запустится фоновое сканирование с ограничением частоты или не начнётся уплотнение. Вот когда именно происходит каждое из этих событий и как добиться немедленного вытеснения.
OpenTelemetry .NET 1.20: ConfigureSampler позволяет библиотекам оборачивать сэмплер приложения
В OpenTelemetry .NET 1.20.0, вышедшем 15 октября 2026 года, появился метод TracerProviderBuilder.ConfigureSampler. Теперь библиотека может обернуть сэмплер, который SDK определил из SetSampler, OTEL_TRACES_SAMPLER или значения по умолчанию, вместо того чтобы молча его перезаписывать.
Как форматировать числа с индийской группировкой разрядов lakh/crore в .NET (NumberGroupSizes)
Используйте культуру en-IN или задайте NumberFormatInfo.NumberGroupSizes равным [3, 2], чтобы в C# выводить 12,34,56,789 вместо 123,456,789. Замеры на .NET 10 и .NET 11 RC1: как работает массив, почему CurrencyGroupSizes задаётся отдельно, ловушка invariant globalization, которая молча выводит западную группировку, и вспомогательный метод для слов lakh/crore.
Вперёд