我有一个ddl,其值代表国家/地区代码。例如。 BRA,THA,UKR,AUS等我需要从每种设置的本地化设置中获取首选货币。
我已经尝试检查RegionInfo类,答案很可能就在那儿。该链接显示了我想要的内容https://www.iban.com/currency-codes
[不使用表结构就可以获取3位数字的CurrencyCode吗?,即从PC或浏览器本身。基本上,如果用户选择其国家/地区为美国,则货币应固定为美元。我可以很容易地用一些SQL做到这一点。但是我想做到这一点而不打数据库。即通过RegionInfo或CultureInfo。
我不能使用从服务器中拉出的新RegionInfo(System.Threading.Thread.CurrentThread.CurrentUICulture.LCID).ISOCurrencySymbol。
如果这3个字母是ISO标准,则有解决方案,您可以应用此代码
var c = CultureInfo.GetCultures(CultureTypes.SpecificCultures)
.Select(t=> new RegionInfo(t.LCID))
.Where(t=>t.ThreeLetterISORegionName == "USA")
.FirstOrDefault();
您将需要访问某个地方的数据存储。
您的选择是:
数据库-您已经对其进行了折扣(可能是因为您不想维护数据集)
硬代码-再次需要您再次维护数据集。
使用外部数据源-例如API,第三方可以在其中提供响应HTTP请求所需的数据。好处是他们还可以为您维护数据集(尽管不能保证它保持最新状态)。
我建议您看看:
它们提供了一系列的RESTful API端点,您可以查询这些端点来检索货币代码。
。NET具有CultureInfo.NumberFormat.CurrencySymbol
RegionInfo us = new RegionInfo("en-US");
RegionInfo gb = new RegionInfo("en-GB");
RegionInfo fr = new RegionInfo("fr-FR");
Console.Out.WriteLine(us.CurrencySymbol); // $
Console.Out.WriteLine(gb.CurrencySymbol); // £
Console.Out.WriteLine(fr.CurrencySymbol); // €
Console.Out.WriteLine(us.ISOCurrencySymbol); // USD
Console.Out.WriteLine(gb.ISOCurrencySymbol); // GBP
Console.Out.WriteLine(fr.ISOCurrencySymbol); // EUR
完整的区域信息可用here