为了创建一个通用基类,我希望将字段的类型存储在变量中。像这样的东西(这不起作用):
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 多个表,我不想仅仅因为每个表的类型而复制/粘贴(干!)业务逻辑。变化。
我想出的方法还有另一种方法吗?
我对 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)
但它看起来很丑而且不短,并不是说我不确定它是否有效地使用处理器时间。
所以我对 Dot Net Core 的东西还比较陌生,所以请耐心等待。
我的最终目标是从项目中的 Javascript 代码调用 C# 代码,反之亦然。因此,如果有一种比我正在做的更简单的方法,那就太好了。我尝试按照此处的教程从 js 运行 C# 函数:
我遇到的问题是在网页上的第二个代码窗口中,这是一行(它是 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 中获取此模块,或者我可以通过其他方式实现此目的?
我有一个 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) 我正在尝试使用以下命令将命令行参数传递-p给我的 .NET Core 应用程序dotnet run。dotnet 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) 默认情况下,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) 问题是,为什么当我使用 HttClient .GetFromJsonAsync 从客户端调用 api 时,实体没有子集合?我从浏览器调用 api,JSON 文本有集合,但在对象上没有。
\n这是我的实体的代码:
\nusing 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) 不久前,我使用 Visual Studio 创建了一个带有 WPF 应用程序的 .NET Core 3.1。然后,在项目属性中,我将“输出类型”更改为“控制台应用程序”,这样我就有了一个漂亮的控制台来打印内容。这已经运行良好一段时间了。但我刚刚将 VS 从 16.7.6 更新到 16.8.1,现在应用程序不会打开控制台窗口,当我打开项目属性时,“输出类型”显示“Windows 应用程序”,当我再次将其更改为“控制台应用程序”,下次我打开项目属性时,它再次显示“Windows 应用程序”(即使 csproj 文件中的 OutputType 为“Exe”,这意味着它是一个控制台应用程序)。
我是否做错了什么,或者 Microsoft 突然决定禁用带有 WPF Core (3.1) 应用程序的控制台窗口,即使他们允许您至少在项目属性打开时将输出类型更改为“控制台应用程序”,而且他们没有这样做告诉任何人(至少,我还没有找到这方面的声明)?
我们正在使用下面的一段 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) 我正在尝试建立一个国家/地区名称字典,其中包含两个字符的国家/地区代码,但将国家/地区名称翻译为选定的语言。
我知道阿拉伯联合酋长国的国家/地区代码是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 个字符代码及其数字代码的完整列表?(这可能吗?)
.net-core ×10
c# ×5
.net ×2
asp.net ×1
asp.net-core ×1
blazor ×1
c#-8.0 ×1
cultureinfo ×1
f# ×1
javascript ×1
localization ×1
msbuild ×1
nest ×1
serilog ×1
translation ×1
wpf ×1