只是想知道是否对在PowerShell中被视为枚举和类成员(方法和字段/属性)文档的注释有任何支持?
根据此处的答案:如何用简单的单词和用法解释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?
我正在查看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遍历,那么复制引用又有什么用呢?
我创建了一个 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) 我正在使用 EasyNetQ,我想知道如何在不事先订阅的情况下获取现有IExchange的IQueue?
在IAdvanceBus我只能看到:
ExchangeDeclareAsyncQueueDeclareAsync但我不确定这些是否会覆盖现有队列或具有相同名称的交换?
另外,在尝试获取/声明队列或交换器之前,我如何确定该队列或交换器存在?
长话短说appsettings.json,Configuration当我使用类似 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)
但是当使用 …
我的 F# 项目Rm.Accounting.Domain
包含以下文件(按顺序):
Model.fs:module Rm.Accounting.Domain.ModelCommands.fs:module Rm.Accounting.Domain.CommandsEvents.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.CommandsBehaviour.fs(4, 20): [FS0039] The namespace 'Domain' is not defined.->open Rm.Accounting.Domain.Events如果没有该文件Behaviour.fs,项目就可以编译,我不确定为什么这两个导入会引起一些麻烦。
我将 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.Caller和Clients.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
我有一个用于 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) 我创建了一个默认的 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# ×7
.net-core ×3
asp.net-core ×3
f# ×2
rabbitmq ×2
.net ×1
appsettings ×1
blazor ×1
compilation ×1
docker ×1
easynetq ×1
masstransit ×1
module ×1
namespaces ×1
owin ×1
powershell ×1
signalr ×1