小编Kar*_*loX的帖子

使用Roslyn Scripting API时为什么会有这么多依赖项?

我目前正在评估Roslyn Scripting,并按照此Scripting API Samples Wiki页面上的描述进行操作:https: //github.com/dotnet/roslyn/wiki/Scripting-API-Samples

首先,我使用VS2017并创建一个针对.NET FW 4.6.1的简单WinForms项目,并通过添加nuget包来安装Scripting API,如下所示:

Install-Package Microsoft.CodeAnalysis.CSharp.Scripting
Run Code Online (Sandbox Code Playgroud)

这很好,上面的样本也可以很好地工作.然而,让我感到惊讶的是,通过安装该nuget包,检测到它依赖的47个其他包的列表并将其添加到我的项目的packages.config文件中.所有这些都被添加到packages文件夹中,现在总共有279 MB!其中包是动物,如"System.Console.4.3.0"或"System.Linq.4.3.0",我想这是我.NET Framework安装中已包含的相同或类似命名组件的替代品.

所以这是我的两个问题:

  1. 为什么我的计算机上已存在如此多的程序集依赖项?
  2. 我真的需要使用这些版本吗?我可以使用.NET FW 4.6.x附带的"标准"版本吗?

谢谢!

.net c# roslyn

8
推荐指数
0
解决办法
505
查看次数

微软的“....Abstractions”Nuget 包的想法是什么?

有人可以解释提供...抽象包背后的一般想法吗?

例如,当我在 VS NuGet 包管理器中搜索“托管”一词时,结果列表中有:

  • Microsoft.Extensions.Hosting
  • Microsoft.Extensions.Hosting.Abstractions
  • Microsoft.AspNetCore.Hosting.Server.Abstraction
  • Microsoft.AspNetCore.Hosting.Abstractions
  • Microsoft.AspNetCore.Hosting
  • Microsoft.Extensions.Hosting.WindowsServices

这些都有关系吗?有些似乎依赖于平台(AspNetCore),而有些则不是?是否有一般规则告诉我何时选择哪个?

假设我想在 .NET5 类库中实现 BackgroundService,我应该安装这些 NuGet 中的哪一个?(似乎Microsoft.Extensions.Hosting.Abstractions对我来说很好用,但我不得不尝试一下。)

谢谢

nuget .net-5

5
推荐指数
1
解决办法
472
查看次数

如何在同一进程中实现 ASP.NET Core Blazor Server 应用程序和 Web API 应用程序?

我想同时实现

  • ASP.NET Core Blazor 服务器
  • 和 ASP.NET Core Web API(服务器部分,而不是消费者/客户端)

同一进程中使用 .NET 6 并使用 Kestrel 自托管运行它,即没有 IIS。

我认为关键是在相应的 Program.cs 模板中找到的服务和中间件管道配置。以下是 VS 2022 (17.1.5) 为我创建的两个模板:

对于 Blazor 服务器应用程序:

using BlazorApp1.Data;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Web;

var builder = WebApplication.CreateBuilder(args);

// Add services to the container.
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
builder.Services.AddSingleton<WeatherForecastService>();

var app = builder.Build();

// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
  app.UseExceptionHandler("/Error");
  // The default HSTS value is 30 days. You may want to change this for production scenarios, see …
Run Code Online (Sandbox Code Playgroud)

c# asp.net-core asp.net-core-webapi blazor-server-side

5
推荐指数
1
解决办法
4139
查看次数

在服务端 Blazor 中,如何取消页面或组件的长时间运行的后台任务?

假设我有一个长时间运行的任务,我已经初始化并从我的页面类的 OnInitializedAsync() 方法开始,该方法派生自 Microsoft.AspNetCore.Components.ComponentBase。我用它来收集数据,它不时更新用户界面,效果很好。

但在某些时候,我需要摆脱那个后台任务。当客户端切换到另一个页面或离开网络应用程序时,我想取消我的任务,这样它就不会一直运行下去。我没有找到合适的生命周期方法。

有什么建议?

blazor blazor-server-side

3
推荐指数
1
解决办法
1089
查看次数

TypeScript:将 const 枚举的成员名称作为字符串获取?

假设我有这个 const 枚举定义:

const enum Snack {
    Apple = 0,
    Banana = 1,
    Orange = 2,
    Other = 3
}
Run Code Online (Sandbox Code Playgroud)

在我的打字稿代码中,可以获取其中一个成员的字符串文字吗?

在 C# 中,它将是例如nameof(Snack.Orange). (我知道 typescript 不支持 nameof 并且我知道非常量枚举是如何可能的。)

typescript

1
推荐指数
1
解决办法
3221
查看次数