标签: .net-core

在变量中存储类型以声明属性

为了创建一个通用基类,我希望将字段的类型存储在变量中。像这样的东西(这不起作用):

    public class MyClass
    {
        public MyClass()
        {
            myType = typeof(string);
        }

        public Type myType { get; set; }

        public myType MyProperty { get; set; }
    }

Run Code Online (Sandbox Code Playgroud)

我处理数据库中的大量模型和模型的 ObservableCollections,其中包含通过 Entity Framework Core 获得的 70 多个表,我不想仅仅因为每个表的类型而复制/粘贴(干!)业务逻辑。变化。

我想出的方法还有另一种方法吗?

c# entity-framework-core .net-core c#-8.0

0
推荐指数
1
解决办法
1137
查看次数

F# 等待任务并使用其结果

我对 F# 有点陌生,我正在尝试在 F# 模块中使用一些 C# 类。

let getApps (context: MyContext) =
    context.Provider.GetService<AppRepository>().GetActiveAsync().Result
    |> List.ofSeq
    |> List.map printName
    |> ignore
Run Code Online (Sandbox Code Playgroud)

我心里的 C# 开发人员尖叫道:.Result太糟糕了。所以我的问题是,如何将此代码重构为更优雅的方式,并利用 F# 中适当的异步编程。

我一直在尝试使用不同的变体:

|> Async.AwaitTask
|> Async.RunSynchronously
Run Code Online (Sandbox Code Playgroud)

但它看起来很丑而且不短,并不是说我不确定它是否有效地使用处理器时间。

.net f# .net-core

0
推荐指数
1
解决办法
573
查看次数

未定义在 Dot Net Core/DotNet 中从 javascript 调用 C# 函数

所以我对 Dot Net Core 的东西还比较陌生,所以请耐心等待。

我的最终目标是从项目中的 Javascript 代码调用 C# 代码,反之亦然。因此,如果有一种比我正在做的更简单的方法,那就太好了。我尝试按照此处的教程从 js 运行 C# 函数:

https://learn.microsoft.com/en-us/aspnet/core/blazor/call-dotnet-from-javascript?view=aspnetcore-3.1#static-net-method-call

我遇到的问题是在网页上的第二个代码窗口中,这是一行(它是 javascript 代码):

DotNet.invokeMethodAsync('BlazorSample', 'ReturnArrayAsync')
      .then(data => {
        data.push(4);
          console.log(data);
      });
Run Code Online (Sandbox Code Playgroud)

当我尝试在我自己的 dot net core 站点上运行此函数时,出现错误:“Uncaught ReferenceError:DotNet 未定义”。我一直在谷歌上搜索尽可能多的东西,但我似乎找不到任何出现该错误的原因。我找不到任何可以放置的 import/require 类型语句,而且由于我是 DotNet Core 的新手,所以我真的陷入了困境。有谁知道我如何在 javascript 中获取此模块,或者我可以通过其他方式实现此目的?

javascript c# .net-core

0
推荐指数
1
解决办法
2246
查看次数

接受原始 JSON Asp.net core

我有一个 asp.net core 方法,我希望它接受 RAW json,我不知道也不会总是知道 json 对象的架构,所以我使用dynamic types点表示法。

当我将 json 转义为每个字符时,此方法有效。我尝试过直接使用 json body,但这不起作用。所以看来我的选择是Serialize然后Deserialize是 json. (非常多余)但如果我尝试直接使用 JSON 主体,它似乎会以任何其他方式抛出错误。

在调试器中,一切似乎都适用于对象/字符串的序列化和反序列化,但当我尝试将对象转换为字符串并给出错误时,会在 id(属性)上引发错误。(尽管在调试器中我能够正确地看到 ID)。

({Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: Cannot convert type 'System.Text.Json.JsonElement' to 'string')}

我真的不明白为什么它给出了字符串类型但无法转换它。我什至尝试删除铸造,但仍然收到此错误。

public IActionResult Post([FromBody] ExpandoObject requestInput)
{
    try
    {
//Makes a JSON String
        var stringObject = (string) JsonSerializer.Serialize(requestInput);
        DateTime time = DateTime.UtcNow;
// Recreated the Json Object
        dynamic requestObject = JsonSerializer.Deserialize<ExpandoObject>(stringObject); 
// Throws Error here, yet it shows Value as the correct Id number (Value: Type …
Run Code Online (Sandbox Code Playgroud)

.net c# asp.net .net-core asp.net-core

0
推荐指数
1
解决办法
2389
查看次数

使用 dotnet run 时无法将 -p 参数传递给 .NET 应用程序

我正在尝试使用以下命令将命令行参数传递-p给我的 .NET Core 应用程序dotnet rundotnet run -p /Users/user/Pictures但是,当我这样做时,我收到如下错误消息。它看起来像是dotnet run试图打开一个项目文件夹,而不是将此参数传递给我的应用程序。我可以将其他内容(例如 )传递-q给我的应用程序。

-p使用时如何传递到我的应用程序dotnet run

错误是这样的:

$ dotnet run -p /Users/user/Pictures

MSBUILD : error MSB1001: Unknown switch.
Switch: /Users/user/Pictures
For switch syntax, type "MSBuild -help"
The build failed. Fix the build errors and run again.
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个带有如下开关的 .NET 应用程序:

Usage: du [-s] [-p] [-b] "path"

Summarize disk usage of the set of FILES, recursively for directories.
You MUST specify one of …
Run Code Online (Sandbox Code Playgroud)

c# msbuild .net-core

0
推荐指数
1
解决办法
2018
查看次数

如何在 Elasticsearch 7 NEST 7 中设置“max_result_window”

默认情况下,elasticsearch 仅返回 10k 结果。但我需要转到超过 10k 结果的最后一页。

我做了一些工作,并通过设置“max_result_window”找到了一个解决方案:100000 我在 Kibana 中执行它,甚至超过 5000 页在此设置后工作正常。

PUT jm-stage-products/_settings
{ 
  "max_result_window" : 100000 
}
Run Code Online (Sandbox Code Playgroud)

现在,当我在源代码中创建索引时,我需要包含此设置。但我找不到方法来做到这一点。这是我的索引创建函数。我应该如何设置“max_result_window”:100000?

  public string InitIndexing()
        {
            var indexName = string.Format(_config.ElasticIndexName, _config.HostingEnvironment);

            //-----------------------------------------------------------
            if (!_client.Indices.Exists(indexName).Exists)
            {
                //----------------------------------------------
                var indexSettings = new IndexSettings
                {
                    NumberOfReplicas = 0, // If this is set to 1 or more, then the index becomes yellow.
                    NumberOfShards = 5,                  
                };
             
                var indexConfig = new IndexState
                {
                    Settings = indexSettings
                };
                var createIndexResponses = _client.Indices.Create(indexName, c => c
                                          .InitializeUsing(indexConfig) …
Run Code Online (Sandbox Code Playgroud)

elasticsearch nest .net-core

0
推荐指数
1
解决办法
4084
查看次数

BlazorWebAssembly GetFromJsonAsync 未序列化子集合

问题是,为什么当我使用 HttClient .GetFromJsonAsync 从客户端调用 api 时,实体没有子集合?我从浏览器调用 api,JSON 文本有集合,但在对象上没有。

\n

这是我的实体的代码:

\n
using System.Collections.Generic;\nusing System.ComponentModel.DataAnnotations.Schema;\n\nnamespace excelnobleza.shared.Models.Tablas.Produccion\n{\n    [Table("Lineas")]\n    public class Linea\n    {\n        public int Id { get; set; }\n        public string Nombre { get; set; }\n        public string Responsable { get; set; }\n        public string EmailResponsable { get; set; }\n        public virtual ICollection<Maquina> Maquinas { get; } = new HashSet<Maquina>();\n        public override string ToString() => this.Nombre;\n    }\n\n    public class Maquina\n    {\n        public int Id { get; set; }\n\n        [Required(ErrorMessage = "El nombre …
Run Code Online (Sandbox Code Playgroud)

c# .net-core blazor blazor-webassembly

0
推荐指数
1
解决办法
1074
查看次数

Visual Studio 16.8 刚刚禁用了 WPF Core 3.1 应用程序中的控制台?

不久前,我使用 Visual Studio 创建了一个带有 WPF 应用程序的 .NET Core 3.1。然后,在项目属性中,我将“输出类型”更改为“控制台应用程序”,这样我就有了一个漂亮的控制台来打印内容。这已经运行良好一段时间了。但我刚刚将 VS 从 16.7.6 更新到 16.8.1,现在应用程序不会打开控制台窗口,当我打开项目属性时,“输出类型”显示“Windows 应用程序”,当我再次将其更改为“控制台应用程序”,下次我打开项目属性时,它再次显示“Windows 应用程序”(即使 csproj 文件中的 OutputType 为“Exe”,这意味着它是一个控制台应用程序)。

我是否做错了什么,或者 Microsoft 突然决定禁用带有 WPF Core (3.1) 应用程序的控制台窗口,即使他们允许您至少在项目属性打开时将输出类型更改为“控制台应用程序”,而且他们没有这样做告诉任何人(至少,我还没有找到这方面的声明)?

wpf visual-studio .net-core

0
推荐指数
1
解决办法
532
查看次数

Serilog 不创建日志文件

我们正在使用下面的一段 serilog 代码,它将事件写入控制台和文件,文件和控制台日志记录在我的机器上工作正常,但在其他开发人员机器上控制台日志记录工作,但文件日志记录不起作用,这增加了奇怪之处不过,“logs”文件夹已创建。是否需要进行任何额外的设置?

   public static void SetupLogger()
        {
            //var outputTemplate =   "[{Timestamp:HH:mm:ss} {Level:u3}] {Message:lj}{NewLine}{Exception}";
            var outputTemplate = "[{Level:u3}] {Message:lj}{NewLine}{Exception}";

            // Logger  
            //var outputTemplate = "{Timestamp:yyyy-MM-dd HH:mm:ss.fff} [{Level:u4}] | {Message:l}{NewLine}{Exception}";
            Log.Logger = new LoggerConfiguration()
                .MinimumLevel.Verbose()
                .WriteTo.Console(outputTemplate: outputTemplate, theme:SystemConsoleTheme.Literate,restrictedToMinimumLevel:LogEventLevel.Information)
                .WriteTo.File($"logs/log-{DateTime.Now:yyyy-MM-dd_HH:mm:ss.fff}.log")              
                .CreateLogger();

        }
Run Code Online (Sandbox Code Playgroud)

serilog .net-core serilog-exceptions

0
推荐指数
1
解决办法
2172
查看次数

如何获取 dotnet 中所有国家/地区名称的翻译列表

我正在尝试建立一个国家/地区名称字典,其中包含两个字符的国家/地区代码,但将国家/地区名称翻译为选定的语言。

我知道阿拉伯联合酋长国的国家/地区代码是AE,但我将传递什么IStringLocalizer来将其翻译?

我可以使用类似下面的东西吗?

var localizer = _localizer.WithCulture(new CultureInfo("fr-FR"));
var countryNameTranslated = localizer[103392].ToString();
Run Code Online (Sandbox Code Playgroud)

但我需要的是两个字符国家/地区代码及其(ISO?)编号的完整列表,因此我可以迭代所有这些代码,使用选定的区域性代码和本地化程序来翻译它们。

如何从dotnet coreMicrosoft 库中获取 2 个字符代码及其数字代码的完整列表?(这可能吗?)

translation localization cultureinfo .net-core

0
推荐指数
1
解决办法
1940
查看次数