小编San*_*ndy的帖子

在 Windows 服务中托管 ASP (.NET 6)

我目前正在使用 WebHost 和 WebHostBuilder 在 Windows 服务中托管 ASP.NET (.NET 5) 应用程序。

.NET 6 引入了 WebApplication 和 WebApplicationBuilder。我如何使用它们来托管 Windows 服务?

windows-services asp.net-core .net-6.0

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

Windows 服务中托管的 Kestrel 的 Windows 身份验证

我正在运行托管在 Windows 服务中的 ASP.NET Core 应用程序,如下所述:

https://docs.microsoft.com/en-us/aspnet/core/host-and-deploy/windows-service?view=aspnetcore-2.1

我需要此应用程序来支持 Windows 身份验证。我有哪些选择?我尝试在 IIS 中使用应用程序请求路由/URL 重写模块作为 Windows 身份验证的反向代理,但无法弄清楚如何使其工作。任何指导将不胜感激。

.net windows-services kestrel-http-server asp.net-core

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

理解JavaScript对象(值)

我知道以下代码将一个数字包装到一个对象中:

var x = Object(5);
Run Code Online (Sandbox Code Playgroud)

因此,我期望并理解以下内容:

alert(x == 5); //true
alert(x === 5); //false
Run Code Online (Sandbox Code Playgroud)

但是,我也理解对象是键/值对的列表.所以我希望以下内容有所不同:

alert(JSON.stringify(5)); //5
alert(JSON.stringify(x)); //5
Run Code Online (Sandbox Code Playgroud)

x的结构是什么样的?为什么它看起来不是键/值对格式?

javascript

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

命名空间.AspNetCore.Hosting vs .Extensions.Hosting

在我的ASP.NET Core 2.0项目中,我一直在使用Microsoft.Extensions.Hosting命名空间中的IHostingEnvironment和IApplicationLifetime.

在ASP.NET Core 2.1中,这些接口似乎同时位于Microsoft.AspNetCore.Hosting和Microsoft.Extensions.Hosting命名空间中.有什么区别,我应该使用哪个命名空间?

仅供参考,我也在使用BackgroundService类,它现在是Microsoft.Extensions.Hosting命名空间中的(Core 2.1).

asp.net-core

11
推荐指数
2
解决办法
1327
查看次数

需要检查代码是否包含某些标识符

我将使用 Roslyn 动态编译和执行代码,如下例所示。我想确保代码不违反我的一些规则,例如:

  • 不使用反射
  • 不使用 HttpClient 或 WebClient
  • 不使用 System.IO 命名空间中的文件或目录类
  • 不使用源生成器
  • 不调用非托管代码

我将在以下代码中的何处插入我的规则/检查以及如何执行它们?

using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp;
using Microsoft.CodeAnalysis.CSharp.Syntax;
using Microsoft.CodeAnalysis.Emit;
using System.Reflection;
using System.Runtime.CompilerServices;

string code = @"using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.IO;

namespace Customization
{
    public class Script
    {
        public async Task<object?> RunAsync(object? data)
        {
            //The following should not be allowed
            File.Delete(@""C:\Temp\log.txt"");

            return await Task.FromResult(data);
        }
    }
}";

var compilation = Compile(code);
var bytes = Build(compilation);

Console.WriteLine("Done");

CSharpCompilation Compile(string code)
{
    SyntaxTree syntaxTree …
Run Code Online (Sandbox Code Playgroud)

c# runtime compilation roslyn .net-core

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

VS如何让您选择以前的.NET框架?

当最新版本是早期版本的就地替换时,Visual Studio如何让您选择以前的.NET框架版本.例如,假设我安装了.NET 4.6,它是.NET 4,4.5,4.5.1和4.5.2的就地替代品,当我选择使用版本4时会发生什么?

.net visual-studio

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

在 ExpandoObject 中将 Camel Case JSON 反序列化为 Pascal Case

我有这样的驼峰式 JSON:

{
  "name": "John",
  "age": 55
}
Run Code Online (Sandbox Code Playgroud)

我需要将其反序列化为 ExpandoObject,但我希望属性采用 Pascal Case。所以我应该能够这样做:

dynamic obj = JsonConvert.DeserializeObject<ExpandoObject>(json);
Console.WriteLine($"{obj.Name} is {obj.Age}");
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

c# json.net

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

为什么要串联机器学习中的特征?

我正在学习 Microsoft ML 框架,并且很困惑为什么需要连接功能。在 Microsoft 的鸢尾花示例中,此处: https ://learn.microsoft.com/en-us/dotnet/machine-learning/tutorials/iris-clustering

...特征被串联起来:

string featuresColumnName = "Features";
var pipeline = mlContext.Transforms
    .Concatenate(featuresColumnName, "SepalLength", "SepalWidth", "PetalLength", "PetalWidth")
    ...
Run Code Online (Sandbox Code Playgroud)

为了进行线性回归等计算,是否将多个特征视为单个特征?如果是这样,这有多准确?幕后发生了什么?

machine-learning

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

如何在 Visual Studio 的后期构建事件中写入文本文件?

我正在 Visual Studio 中创建 Windows 服务。在构建后事件中,我想在名为 install.bat 和 uninstall.bat 的 bin 目录中创建 2 个文件。这些文件应该具有输出 EXE 的名称,其中包含 /u 或 /i。EXE 的名称应动态写入文件,而不是硬编码。这可能吗?

c# msbuild batch-file post-build-event visual-studio

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

用源生成器代替反射

我有一个使用反射的工厂,我想用源生成器生成的工厂替换它。

生成的代码应如下所示:

using System;

namespace Generated
{
    public static class InsuranceFactory
    {
        public static IInsurance Get(string insuranceName)
        {
            switch (insuranceName)
            {
                case "LifeInsurance":
                    return new Namespace.LifeInsurance();
                case "AutoInsurance":
                    return new AnotherNamespace.AutoInsurance();
                default:
                    throw new Exception($"Insurance not found for name '{insuranceName}'.");
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

使用反射,我发现我的类型如下:

List<Type> insuranceTypes = new List<Type>();
Type baseInsuranceType = typeof(IInsurance);
IEnumerable<Assembly> assemblies = AppDomain.CurrentDomain.GetAssemblies().Where(o => !IsFrameworkAssembly(o.FullName ?? String.Empty));

foreach (System.Reflection.Assembly a in assemblies)
{
    Type[] types = a.GetTypes();
    insuranceTypes.AddRange(types.Where(t => baseInsuranceType.IsAssignableFrom(t) && t.IsClass && !t.IsAbstract && …
Run Code Online (Sandbox Code Playgroud)

c# .net-5 c#-9.0 sourcegenerators

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

Visual Studio SSRS编辑器缩放选项

我是SSRS的新手.我尝试在VS2013中编辑现有报告.我希望能够放大给定区域,以便我可以很好地控制拖动列.我找不到缩放选项.

或者,如果没有缩放选项,有没有办法在Tablix中设置列宽?

reporting-services

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

调用 Polly ExecuteAsync 方法的正确方法是什么?

执行策略时,我看到有些人这样调用 ExecuteAsync:

...
.ExecuteAsync(async (ct) => await GetEmployeeAsync(employeeId, ct), cancellationToken);
Run Code Online (Sandbox Code Playgroud)

像这样:

...
.ExecuteAsync(ct => GetEmployeeAsync(employeeId, ct), cancellationToken);
Run Code Online (Sandbox Code Playgroud)

有什么区别以及应该使用哪一种?

c# task-parallel-library polly

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