是否可以在C#Interactive中使用来自Web项目的代码?

时间:2017-11-23 14:04:33

标签: c# asp.net visual-studio visual-studio-2017 c#-interactive

我想在Visual Studio 2017上使用C#Interactive在我创建的使用ASP.NET Core的.NET Framework 4.6.1项目中的类上运行一些方法。在传统的类库项目中,我可以右键单击项目并选择使用项目初始化交互以在C#Interactive窗口中使用项目中的类。

右键单击我的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 个答案:

答案 0 :(得分:4)

只需打开C#交互式窗口并输入

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

然后你可以照常使用你的课程。

请注意,如果您的项目以.NET Core为目标 - 它可能无法按预期工作(或根本不可能),因为据我所知 - C#interactive目前在完整的.NET Framework下运行。但是,在您的情况下,您的项目也处于完整的.NET(<TargetFramework>net461</TargetFramework>)之下,因此您应该没问题。