小编Eho*_*ret的帖子

Powershell 5:通过对类和枚举成员的注释提供文档支持

只是想知道是否对在PowerShell中被视为枚举和类成员(方法和字段/属性)文档的注释有任何支持?

powershell powershell-5.0

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

将Owin / Katana与ASP.NET Core结合使用(实际用例)是否仍然有意义?

根据此处的答案:如何用简单的单词和用法解释Katana和OWIN?

关于以上评论,OWIN不是框架。OWIN是有关如何构建Web服务器和Web应用程序以使彼此分离并允许ASP.NET应用程序移动到无法实现当前状态的环境的规范。

在OWIN之前,构建ASP.NET应用程序时,由于对System.Web程序集的依赖性很大,因此您将继承地绑定到IIS。

System.Web是自ASP(非.NET版本)以来一直存在的东西,并且内部包含许多您甚至可能不需要的东西(例如Web窗体或URL授权),默认情况下,它们会在每个请求上运行,从而消耗资源并使得ASP.NET应用程序通常比Node.js的应用程序慢很多。

因此,OWIN本身没有任何工具,库或其他任何东西。这只是一个规范。

如果OWIN只是其Katana及其.NET实现的规范,以便ASP.NET应用程序不与IIS绑定,则在ASP.NET Core应用程序与Kestrell和另一个网络服务器(如Nginx)一起工作时(充当反向代理) )为什么我们仍然需要OWIN?

c# owin asp.net-core

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

在永不重新分配字段的情况下,将字段的引用复制到方法主体中以读取该字段有什么好处?

我正在查看Dictionary<TKey, TValue>.NET Core 中的代码,并且注意到一种编码模式也用于某些内置数据结构(例如Queue<T>Stack<T>和)中List<T>

例如:https : //github.com/dotnet/coreclr/blob/master/src/System.Private.CoreLib/shared/System/Collections/Generic/Dictionary.cs#L482

我们有:

Entry[] entries = _entries;
IEqualityComparer<TKey> comparer = _comparer;
Run Code Online (Sandbox Code Playgroud)

我不太确定为什么我们要保留比较器的引用和条目的变量,对我来说,它仍然引用相同的字段。

如果使用相同的方法主体,这并不像在某个时候重新分配了该字段。

如果没有重新分配引用,并且编译器进行了一些优化来避免this.field遍历,那么复制引用又有什么用呢?

.net c# .net-core

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

为什么 MassTransit 中的简单配置会创建 2 个队列和 3 个交换机?

我创建了一个 MassTransit 快速启动程序来与我的本地主机 RabbitMQ 交互:

namespace ConsoleApp1
{
    public static class Program
    {
        public class YourMessage
        {
            public string Text { get; set; }
        }

        public static async Task Main(params string[] args)
        {
            var bus = Bus.Factory.CreateUsingRabbitMq(sbc =>
            {
                var host = sbc.Host(new Uri("rabbitmq://localhost"), h =>
                {
                    h.Username("guest");
                    h.Password("guest");
                });

                sbc.ReceiveEndpoint(host, "test_queue", ep =>
                {
                    ep.Handler<YourMessage>(async context => await Console.Out.WriteLineAsync($"Received: {context.Message.Text}"));
                });
            });

            await bus.StartAsync(); 
            await bus.Publish(new YourMessage{Text = "Hi"});
            Console.WriteLine("Press any key to exit");
            Console.ReadKey();
            await bus.StopAsync();
        }
    } …
Run Code Online (Sandbox Code Playgroud)

c# masstransit rabbitmq .net-core

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

如何在 EasyNetQ 中获取现有的 Exchange 或队列?

我正在使用 EasyNetQ,我想知道如何在不事先订阅的情况下获取现有IExchangeIQueue

IAdvanceBus我只能看到:

  • ExchangeDeclareAsync
  • QueueDeclareAsync

但我不确定这些是否会覆盖现有队列或具有相同名称的交换?

另外,在尝试获取/声明队列或交换器之前,我如何确定该队列或交换器存在?

c# rabbitmq easynetq .net-core

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

有没有办法使用 F# 记录类型来提取 appsettings.json 配置?

长话短说appsettings.jsonConfiguration当我使用类似 C# 的类时,我可以提取到类型:

type Connection() =
    member val Host = Unchecked.defaultof<string> with get,set
    member val Port = Unchecked.defaultof<int> with get,set
    member val UserName = Unchecked.defaultof<string> with get,set
    member val Password = Unchecked.defaultof<string> with get,set

type Configuration() =
    member val RabbitMQ = Unchecked.defaultof<Connection> with get,set
    member val PostgreSQL = Unchecked.defaultof<Connection> with get,set

let fetchConfiguration =
        let builder = (new ConfigurationBuilder())
                          .SetBasePath(Directory.GetCurrentDirectory())
                          .AddJsonFile("appsettings.json", true, true)
                          .AddEnvironmentVariables(); 
        let configurationRoot = builder.Build();
        let configuration = new Configuration()
        configurationRoot.Bind(configuration)
        configuration
Run Code Online (Sandbox Code Playgroud)

但是当使用 …

c# f# default-value appsettings

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

F#:命名空间未定义

我的 F# 项目Rm.Accounting.Domain 包含以下文件(按顺序):

  • Model.fs:module Rm.Accounting.Domain.Model
  • Commands.fs:module Rm.Accounting.Domain.Commands
  • Events.fs:module Rm.Accounting.Domain.Events

最后一个引起问题Behaviour.fs

module Rm.Accounting.Domain.Behaviour

open Rm.Accounting.Domain.Commands
open Rm.Accounting.Domain.Events
open Rm.Accounting.Infrastructure

let a = 42
Run Code Online (Sandbox Code Playgroud)

这会导致两个错误:

  • Behaviour.fs(3, 20): [FS0039] The namespace 'Domain' is not defined.->open Rm.Accounting.Domain.Commands
  • Behaviour.fs(4, 20): [FS0039] The namespace 'Domain' is not defined.->open Rm.Accounting.Domain.Events

如果没有该文件Behaviour.fs,项目就可以编译,我不确定为什么这两个导入会引起一些麻烦。

f# namespaces module compilation

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

在控制器(ASP.NET Core)中进行 DI 时,如何使用 SignalR 中的 Clients.Caller 和 Clients.Others?

我将 SignalR 与 ASP.NET Core 结合使用:

public class NotificationHub : Hub
{
}
Run Code Online (Sandbox Code Playgroud)
[Route("api/[controller]")]
[ApiController]
public class AController : ControllerBase
{
    private readonly IHubContext<NotificationHub> _hubContext;

    public AController(IHubContext<NotificationHub> hubContext)
    {
        _hubContext = hubContext;
    }
}
Run Code Online (Sandbox Code Playgroud)

我发现我只能使用属性Clients.CallerClients.Others

public class NotificationHub : Hub
{
        public void Test()
        {
            Clients.Caller.SendAsync("aMethod");
            Clients.Others.SendAsync("aMethod");
        }
}
Run Code Online (Sandbox Code Playgroud)

虽然IHubContext<NotificationHub>我只能访问:

_hubContext.Clients.All
Run Code Online (Sandbox Code Playgroud)

有什么方法可以访问中心外的资源Clients.Caller并获取其属性吗?Clients.Others

c# signalr asp.net-core

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

GitHub Actions:如何在 windows-latest 和 macos-latest 中运行 docker-compose?

我有一个用于 PR 的 GitHub Action 工作流程,其中包含一个执行一些 NET Core 虚拟测试的作业,这些测试需要 PostgreSQL + SQL Serve 的实例。

工作定义:

run-test:
  needs: [lint-commit, lint-code]
  strategy:
    matrix:
      os: [ubuntu-latest]
      dotnet: [3.1.201]
    fail-fast: false
  runs-on: ${{ matrix.os }}
  steps:
    - uses: actions/checkout@v2
    - name: Build the docker-compose stack
      run: docker-compose --file "./MessingUp.Tests/docker-compose.yml" up --detach
    - name: Setup .NET Core
      uses: actions/setup-dotnet@v1
      with:
        dotnet-version: ${{ matrix.dotnet }}
    - name: Run Tests
      run: dotnet test
Run Code Online (Sandbox Code Playgroud)

和 docker compose 文件,./MessingUp.Tests/docker-compose.yml

version: "3.7"

services:

  sqlserver:
    image: mcr.microsoft.com/mssql/server:2019-CU3-ubuntu-18.04
    restart: unless-stopped …
Run Code Online (Sandbox Code Playgroud)

docker docker-compose github-actions

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

更改 Blazor 文件夹会导致我“找不到后备端点”

我创建了一个默认的 Blazor 项目,并希望在同一项目中拥有一个 Web API 部分以用于原型设计。

因此,我将所有控制器和相关内容放在一个Api子文件夹中,并将 Blazor 内容放在一个Blazor子文件夹中。

项目结构:

- Api
  - Controllers
    - AController.cs
- Blazor
  - Pages
    - _Host.cshtml
    - Counter.razor
    - Error.razor
    - FetchData.razor
    - Index.razor
  - Data
    - WeatherForecast.cs
    - WeatherForecastService.cs
  - Shared
    - MainLayout.razor
    - NavMenu.razor
  - _Imports.razor
  - App.razor
- appsettings.json
- appsettings.Development.json
- Program.cs
- Startup.cs
Run Code Online (Sandbox Code Playgroud)

Startup.cs

public class Startup
{
    public IConfiguration Configuration { get; }

    public Startup(IConfiguration configuration)
    {
        Configuration = configuration;
    }

    public void ConfigureServices(IServiceCollection …
Run Code Online (Sandbox Code Playgroud)

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

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