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
我有一个包含两个主机项目的解决方案(一个是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.Sdk和Microsoft.NETCore.App)而不是ASP.NET Core(Microsoft.NET.Sdk.Web和Microsoft.AspNetCore.App),因为它不是Web项目吗?
2)在类库项目中,可以使用Microsoft.NET.Sdk它Microsoft.AspNetCore.App以避免引用属于的不同版本的包的可能性Microsoft.AspNetCore.App(例如,避免Microsoft.AspNetCore.App@2.1.0在宿主项目和Microsoft.Extensions.Configuration@2.0.0类库项目中)?或者我只能Microsoft.AspNetCore.App在Microsoft.NET.Sdk.WebSDK中使用metapackage ?
3)使用Microsoft.NET.Sdk或有什么区别Microsoft.NET.Sdk.Web?该文档称,"该SDK,作为分层文件描述,是一套MSBuild任务和目标,可以构建.NET的核心代码." ,但为什么我们需要同时拥有它们?在实践中,怎样Microsoft.NET.Sdk.Web做是Microsoft.NET.Sdk不?
微软最近在 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 上运行)。
我正在尝试将我的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表单中,我必须输入以下字段:
我有一个在 Kubernetes 中运行的应用程序。为了在不停机的情况下利用滚动更新,我必须实施适当的健康检查,以便集群可以知道应用程序/容器何时准备好处理请求。
我正在尝试使用新的 ASP.NET Code 2.2 Healthchecks功能。
我应该返回一个Microsoft.Extensions.Diagnostics.HealthChecks.HealthCheckResult包含应用程序状态的结构。
这个结构有 3 个静态方法,我可以用来返回这个状态:
在哪些情况下应用程序不适合我应该使用 Unhealthy vs Degraded?举几个例子就好了。
我正在尝试使用新的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
ASP.NET Core中的托管设计现在有一个新的通用主机(.NET Core 2.1+),将来会取代Web主机.
有很多方法可以开始使用该应用程序Microsoft.Extensions.Hosting接口IHost和IHostBuilder.
我知道使用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) 我正在Troy Hunt的博客(https://www.troyhunt.com/ive-just-launched-pwned-passwords-version-2/)上阅读一篇关于"Pwned Passwords"的功能,该功能会检查您的密码是否为在泄漏密码超过10亿的数据库中.
要在不传递密码的情况下进行检查,客户端代码将其哈希并仅传递此哈希的前五个字符,后端将返回以您传递的前缀开头的密码的所有sha1哈希值.然后,要检查密码的哈希值是否在数据库中,请对客户端代码进行比较.
他提供了一些关于这些散列密码数据的信息......
- 从00000到FFFFF的每个哈希前缀都填充了数据(16 ^ 5组合)
- 返回的平均哈希值为478
- 最小的是381(哈希前缀"E0812"和"E613D")
- 最大的是584(哈希前缀"00000"和"4A4E8")
在评论中,人们想知道这个"00000"的存在是巧合还是数学......
知道SHA1算法的人能解释一下吗?
我正在尝试使用.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'的服务
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 …