Можно ли использовать код из веб-проекта в C# Interactive?

Я хотел бы использовать C# Interactive в Visual Studio 2017 для запуска некоторых методов в классах созданного мной проекта.NET Framework 4.6.1, в котором используется ASP.NET Core. В традиционном проекте библиотеки классов я могу щелкнуть правой кнопкой мыши по проекту и выбрать Инициализировать интерактив с проектом, чтобы использовать классы из моего проекта в интерактивном окне C#.

Если щелкнуть правой кнопкой мыши по моему проекту ASP.NET Core, у меня нет этой опции. Есть ли способ использовать классы из этого проекта в C# Interactive?

Если это имеет значение, классы, которые я хотел бы использовать в C# Interactive, не взаимодействуют напрямую с ASP.NET Core; это просто контейнеры данных с методами. Вероятно, можно было бы переместить их в отдельный проект библиотеки классов в решении, но я хотел бы знать, возможно ли сначала сохранить их в проекте ASP.NET Core.

мой .csproj:

<Project Sdk="Microsoft.NET.Sdk.Web">

  <PropertyGroup>
    <TargetFramework>net461</TargetFramework>
  </PropertyGroup>

  <ItemGroup>
    <Folder Include="wwwroot\" />
  </ItemGroup>

  <ItemGroup>
    <PackageReference Include="EntityFramework" Version="6.1.3" />
    <PackageReference Include="Microsoft.ApplicationInsights.AspNetCore" Version="2.0.0" />
    <PackageReference Include="Microsoft.AspNet.Mvc" Version="5.2.3" />
    <PackageReference Include="Microsoft.AspNet.Razor" Version="3.2.3" />
    <PackageReference Include="Microsoft.AspNetCore" Version="1.1.2" />
    <PackageReference Include="Microsoft.AspNetCore.StaticFiles" Version="1.0.0" />
    <PackageReference Include="RazorEngine" Version="3.10.0" />
  </ItemGroup>

</Project>

1 ответ

Решение

Просто откройте интерактивное окно C# и введите

#r "full path to dll\exe with your asp.net core project"

Тогда вы можете использовать ваши классы, как обычно.

Обратите внимание, что если ваш проект нацелен на.NET Core - он может работать не так, как ожидалось (или вообще), потому что, насколько я знаю, C# интерактивный в настоящее время работает под полной.NET Framework. Тем не менее, в вашем случае ваш проект также находится под полной.NET (<TargetFramework>net461</TargetFramework>) так что с тобой все должно быть в порядке.

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