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

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

我想在 Visual Studio 2017 上使用 C# Interactive 在我创建的使用 ASP.NET Core 的 .NET Framework 4.6.1 项目中的类上运行一些方法。在传统的类库项目中,我可以右键单击项目并选择Initialize Interactive with Project,以便在 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>

最佳答案

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

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

然后你就可以像往常一样使用你的类了。

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

关于c# - 是否可以在 C# Interactive 中使用来自 Web 项目的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47457346/

相关文章:

c# - 在 MS Access 文件上使用处置和 SuppressFinalize 后文件已在使用异常

c# - C# 中逻辑运算符的结构

c# - 在 Silverlight App 中拖放文件夹

asp.net - 这是怎么回事?

visual-studio - 我应该考虑可移植类库吗?

c# - 系统.Data.SqlClient.SqlException : 'Invalid column name ' '

c# - Sharepoint日期时间问题

asp.net - 如何在 SignalR2 中设置 Json 序列化器设置?

c# - 从 ASP.net 中的用户控件访问页面上的文本框

c++ - 为 Visual Studio C++ 静态库强制导出名称