Можно ли использовать код из веб-проекта в 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>
) так что с тобой все должно быть в порядке.