.NET 8 – C#12 – предварительная версия перехватчиков

Я хотел бы попробовать новую функцию предварительного просмотра C# 12 Interceptors , но, похоже, не могу заставить ее работать.

На странице написано

Функция предварительной версии, представленная в Visual Studio 17.7, предварительная версия 3.

Поэтому я попробовал использовать Jetbrains Rider. Потому что я видел видео Ника Чапсаса на YouTube.

Мой файл проекта выглядит так:

      <Project Sdk="Microsoft.NET.Sdk">
    <PropertyGroup>
        <OutputType>Exe</OutputType>
        <TargetFramework>net8.0</TargetFramework>
        <ImplicitUsings>enable</ImplicitUsings>
        <Nullable>enable</Nullable>
        <LangVersion>preview</LangVersion>
        <Features>InterceptorsPreview</Features>
    </PropertyGroup>
</Project>

Я использовал пример кода с этой страницы

Я еще раз посмотрел видео на Youtube и увидел, чтоInterceptsLocationAttributeбыл в одном из его вспомогательных файлов, поэтому я попытался добавить код этого атрибута в свой проект кода.

Код компиляции шины все еще не работает. Выполнение кода не перешло к коду перехвата.

2 ответа

Обновление: теперь, когда выпущена предварительная версия Visual Studio 17.7 3, она работает так, как задумано в предварительной версии Visual Studio.

У меня все заработало, изменения уже есть в основной ветке https://github.com/dotnet/roslyn , поэтому, создав это локально, я могу запустить новую версию Visual Studio и запустить в ней код. Это заставляет это работать, поэтому я думаю, что Ник сделал то же самое.

Да, атрибут [InterceptsLocation] не был распознан компилятором C#12, поскольку в настоящее время он отсутствует в System.Runtime.CompilerServices.

Хотя он предлагается для C#12, но на данный момент почему-то недоступен в System.Runtime.CompilerServices. Нам нужно добавить его в пространство имен System.Runtime.CompilerServices, и тогда он будет работать как положено.

Наткнулся на один канал Youtube «Learn N Joy», где это обсуждалось и объяснялось. Вот ссылка:

https://www.youtube.com/watch?v=u-BtY5QugbQ

Другие вопросы по тегам