小编lmc*_*iro的帖子

将匿名类型转换为新的C#7元组类型

C#的新版本就在那里,有了新的功能元组类型:

public IQueryable<T> Query<T>();

public (int id, string name) GetSomeInfo() {
    var obj = Query<SomeType>()
        .Select(o => new {
            id = o.Id,
            name = o.Name,
        })
        .First();

    return (id: obj.id, name: obj.name);
}
Run Code Online (Sandbox Code Playgroud)

有没有办法将我的匿名类型对象obj转换为我想要返回的元组而没有按属性映射属性(假设属性的名称匹配)?

上下文在ORM中,我的SomeType对象有很多其他属性,它被映射到包含大量列的表.我想做一个只带来ID和NAME的查询,所以我需要将匿名类型转换为元组,或者我需要ORM Linq Provider知道如何理解元组并将属性相关列放在SQL select子句中.

linq-to-entities tuples anonymous-types linq-to-nhibernate c#-7.0

30
推荐指数
3
解决办法
2万
查看次数

Microsoft.NET.Sdk和Microsoft.NET.Sdk.Web之间有什么区别

我有一个包含两个主机项目的解决方案(一个是Web主机,另一个是通用主机)和这两个主机项目引用的类库项目.

在*.csproj文件的根标记的Sdk属性中<Project>,两个主机项目(Web主机和通用主机)都在使用Microsoft.NET.Sdk.Web,但类库项目使用Microsoft.NET.Sdk.

这两个主机项目引用了Microsoft.AspNetCore.App元数据包.

类库项目正在使用Microsoft.NETCore.App,但它单独引用一些ASP.NET Core包(其中的包Microsoft.AspNetCore.App不在其中Microsoft.NETCore.App).

关于正确的SDK和元数据包:

1)在通用主机项目中,我应该使用纯.NET Core(Microsoft.NET.SdkMicrosoft.NETCore.App)而不是ASP.NET Core(Microsoft.NET.Sdk.WebMicrosoft.AspNetCore.App),因为它不是Web项目吗?

2)在类库项目中,可以使用Microsoft.NET.SdkMicrosoft.AspNetCore.App以避免引用属于的不同版本的包的可能性Microsoft.AspNetCore.App(例如,避免Microsoft.AspNetCore.App@2.1.0在宿主项目和Microsoft.Extensions.Configuration@2.0.0类库项目中)?或者我只能Microsoft.AspNetCore.AppMicrosoft.NET.Sdk.WebSDK中使用metapackage ?

3)使用Microsoft.NET.Sdk或有什么区别Microsoft.NET.Sdk.Web?该文档称,"该SDK,作为分层文件描述,是一套MSBuild任务和目标,可以构建.NET的核心代码." ,但为什么我们需要同时拥有它们?在实践中,怎样Microsoft.NET.Sdk.Web做是Microsoft.NET.Sdk不?

.net c# msbuild .net-core

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

我可以从 .NET 5 项目中添加对 .NET Framework DLL 的引用吗?

微软最近在 Build 2019 上宣布,.NET 的下一个主要版本将把 .NET Core 3.* 和 .NET Framework 4.* 统一到一个单一的 .NET 平台中,主要版本号为 5。

我不太明白,这是否意味着使用 .NET 5 我将能够添加对用 .NET 的两个版本编写的库的引用?

例如,一个 .NET 5 项目引用了 2 个程序集,一个是针对 .NET Core 3 编译的,另一个是针对 .NET Framework 4.5 编译的(在这种情况下,因为它引用了 .NET Framework 库,我认为它只能在 Windows 上运行)。

.net .net-5

16
推荐指数
2
解决办法
1万
查看次数

如何将Azure AKS Kubernetes Cluster自签名CA添加到GitLab CI/CD Kubernetes集成?

我正在尝试将我的Azure AKS Kubernetes集群添加到我的GitLab CI/CD Kubernetes集成中.

kubectl运行此命令后,我可以从我的电脑上执行集群上的命令:

az aks get-credentials --resource-group <resource-group-name> --name <kubernetes-cluster-name>

它创建了.kube/config一个包含如下内容的文件:

apiVersion: v1
clusters:
- cluster:
    certificate-authority-data: <some long base64 string here>
    server: https://<resource-group-name+some-hexadecimal-chars>.hcp.westeurope.azmk8s.io:443
  name: <kubernetes-cluster-name>
contexts:
- context:
    cluster: <kubernetes-cluster-name>
    user: clusterUser_<resource-group-name>_<kubernetes-cluster-name>
  name: <kubernetes-cluster-name>
current-context: <kubernetes-cluster-name>
kind: Config
preferences: {}
users:
- name: clusterUser_<resource-group-name>_<kubernetes-cluster-name>
  user:
    client-certificate-data: <some long base64 string here>
    client-key-data: <some long base64 string here>
    token: <some secret string of hexadecimal chars here>
Run Code Online (Sandbox Code Playgroud)

在GitLab表单中,我必须输入以下字段:

  1. Kubernetes集群名称
  2. API URL
  3. CA证书 - 证书颁发机构捆绑(PEM格式)
  4. 代币 …

azure gitlab-ci kubernetes kubernetes-helm azure-aks

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

Unhealthy 与 Degraded .NET 运行状况检查状态之间的区别是什么

我有一个在 Kubernetes 中运行的应用程序。为了在不停机的情况下利用滚动更新,我必须实施适当的健康检查,以便集群可以知道应用程序/容器何时准备好处理请求。

我正在尝试使用新的 ASP.NET Code 2.2 Healthchecks功能。

我应该返回一个Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckResult包含应用程序状态的结构。

这个结构有 3 个静态方法,我可以用来返回这个状态:

  • 健康
  • 不良
  • 降级

在哪些情况下应用程序不适合我应该使用 Unhealthy vs Degraded?举几个例子就好了。

health-monitoring docker kubernetes .net-core asp.net-core

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

如何在ASP.NET核心运行状况检查中注入依赖项

我正在尝试使用新的ASP.NET Code 2.2 Healthchecks功能.

在.net博客的此链接中,它显示了一个示例:

public void ConfigureServices(IServiceCollection services)
{
    //...
    services
        .AddHealthChecks()
        .AddCheck(new SqlConnectionHealthCheck("MyDatabase", Configuration["ConnectionStrings:DefaultConnection"]));
    //...
}

public void Configure(IApplicationBuilder app)
{
    app.UseHealthChecks("/healthz");
}
Run Code Online (Sandbox Code Playgroud)

我可以添加实现该Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck接口的自定义检查.但是因为我需要向AddCheck方法提供实例而不是类型,并且需要在ConfigureServices方法内部运行,所以我不能在自定义检查器中注入任何依赖项.

有没有办法解决这个问题?

c# dependency-injection health-monitoring .net-core asp.net-core

8
推荐指数
2
解决办法
1865
查看次数

在ASP.NET Core中启动/运行通用主机的这些方法有什么区别?

ASP.NET Core中的托管设计现在有一个新的通用主机(.NET Core 2.1+),将来会取代Web主机.

有很多方法可以开始使用该应用程序Microsoft.Extensions.Hosting接口IHostIHostBuilder.

我知道使用asyncvs 之间的区别sync,但所有这些选项之间有什么区别?使用Runvs Start和呼叫IHostBuildervs呼叫IHost

看到的选项// 1,// 2,// 3// 4下面的代码:

using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.DependencyInjection;
using Microsoft.Extensions.Hosting;
using Microsoft.Extensions.Logging;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;

namespace MyNamespace
{
    class Program
    {
        static async Task Main(string[] args)
        {
            IHostBuilder builder = CreateBuilder();

            // 1 - Call Run on the builder (async)
            await …
Run Code Online (Sandbox Code Playgroud)

c# .net-core asp.net-core

8
推荐指数
2
解决办法
1769
查看次数

为什么哈希(SHA1)密码的最常见前缀是"00000"?

我正在Troy Hunt的博客(https://www.troyhunt.com/ive-just-launched-pwned-passwords-version-2/)上阅读一篇关于"Pwned Passwords"的功能,该功能会检查您的密码是否为在泄漏密码超过10亿的数据库中.

要在不传递密码的情况下进行检查,客户端代码将其哈希并仅传递此哈希的前五个字符,后端将返回以您传递的前缀开头的密码的所有sha1哈希值.然后,要检查密码的哈希值是否在数据库中,请对客户端代码进行比较.

他提供了一些关于这些散列密码数据的信息......

  1. 从00000到FFFFF的每个哈希前缀都填充了数据(16 ^ 5组合)
  2. 返回的平均哈希值为478
  3. 最小的是381(哈希前缀"E0812"和"E613D")
  4. 最大的是584(哈希前缀"00000"和"4A4E8")

在评论中,人们想知道这个"00000"的存在是巧合还是数学......

知道SHA1算法的人能解释一下吗?

passwords algorithm hash sha1

7
推荐指数
3
解决办法
1144
查看次数

ASP.NET Core - 尝试使用HealthChecks时出错

我正在尝试使用.NET Core 2.2运行状况检查.

ConfigureServices我注册实现Microsoft.Extensions.Diagnostics.HealthChecks.IHealthCheck接口的类.

但是当我在UseHealthChecks方法中执行扩展Configure方法时,它会抛出一个错误:

public void Configure(IApplicationBuilder app)
{
    app.UseHealthChecks("/hc"); // <-- Error in this line
    // ...
Run Code Online (Sandbox Code Playgroud)

System.InvalidOperationException: '尝试激活'Microsoft.AspNetCore.Diagnostics.HealthChecks.HealthCheckMiddleware'时,无法解析类型'Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckService'的服务

c# asp.net-core

6
推荐指数
2
解决办法
1810
查看次数

Change the root commit parent to point to another commit (connecting two independent git repositories)

I have a project that has more than 3 years of history in the svn repository. It was migrated to git, but the guy who did this, just take the last version and throw out all these 3 years of history.

Now the project has the last 3-4 months of history in one repository, and I've imported the other 3 years of svn history into a new git repository.

Is there some way to connect the root commit of the …

git git-rebase git-filter-branch git-history-graph

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