C# 在ASP.NET核心中使用NumberFormat属性

C# 在ASP.NET核心中使用NumberFormat属性,c#,asp.net-core,tostring,.net-core,asp.net-core-localization,C#,Asp.net Core,Tostring,.net Core,Asp.net Core Localization,。CurrentCulture在当前线程中不再可用 我正试图设置CurrentCulture的NumberFormat属性,如前所述,以自定义显示货币的格式,但显然这种方式已经不可能了。那么如何设置CurrentCulture的NumberFormat属性呢 asp.net core之前用于此的代码: CurrentCulture modified = new CultureInfo(Thread.CurrentThread.CurrentCulture.Name); Thread.Curren

CurrentCulture
在当前线程中不再可用

我正试图设置
CurrentCulture
NumberFormat
属性,如前所述,以自定义显示货币的格式,但显然这种方式已经不可能了。那么如何设置
CurrentCulture
NumberFormat
属性呢

asp.net core之前用于此的代码:

CurrentCulture modified = new CultureInfo(Thread.CurrentThread.CurrentCulture.Name);
Thread.CurrentThread.CurrentCulture = modified;
var numberFormat = modified.NumberFormat;
numberFormat.CurrencySymbol = "RM";
numberFormat.CurrencyDecimalDigits = 2;
numberFormat.CurrencyDecimalSeparator = ".";
numberFormat.CurrencyGroupSeparator = ",";
例如,在我的代码中,我想做:

string fMoney;
fMoney = money.ToString("C");
return fMoney;

并希望应用
numberFormat
设置。

您可以将
UseRequestLocalization
添加到Startup.cs中的
Configure()
方法中:

public void配置(IApplicationBuilder应用程序)
{
app.UseIISPlatformHandler();
应用程序UserRequestLocalization(新的RequestCulture(新的CultureInfo)(“es”));
app.Run(异步(上下文)=>
{
context.Response.ContentType=“text/html”;
wait context.Response.WriteAsync(HtmlEncoder.Default.HtmlEncode(1000.5f.ToString(“C”));
});
}
结果:

1.000,50欧元

另外,更接近原始问题的要点:

public void配置(IApplicationBuilder应用程序)
{
app.UseIISPlatformHandler();
var modified=新的CultureInfo(CultureInfo.DefaultThreadCurrentCulture.DisplayName);
modified.NumberFormat.CurrencySymbol=“RM”;
modified.NumberFormat.CurrencyDecimalDigits=2;
modified.NumberFormat.CurrencyDecimalSeparator=“.”;
modified.NumberFormat.CurrencyGroupSeparator=“,”;
app.UseRequestLocalization(新的RequestCulture(修改));
app.Run(异步(上下文)=>
{
context.Response.ContentType=“text/html”;
wait context.Response.WriteAsync(HtmlEncoder.Default.HtmlEncode(1000.5f.ToString(“C”));
});
}
结果:

1000.50令吉


它似乎是app.UseRequestLocalization(newrequestCulture(modified))的签名已更改。它现在需要一个
RequestLocalizationOptions
对象。