gpt4 book ai didi

c# - 为什么我得到 "Culture is not supported"以及如果有的话,我应该怎么做?

转载 作者:可可西里 更新时间:2023-11-01 08:26:56 32 4
gpt4 key购买 nike

我在此处的“返回”行上有一个断点:

[HttpGet]
[Route("api/Test/{id1}/{id2}")]
public NRBQEntity GetTestMessage(String id1, String id2)
{
return NRBQClient.GetTestMessage(id1, id2);
}

虽然它不会使应用程序崩溃,但当我达到这一点时,我明白了,

异常:抛出:“不支持文化。”(System.Globalization.CultureNotFoundException)抛出 System.Globalization.CultureNotFoundException:“不支持文化。”

试图支持哪种文化,为什么不支持,如果有的话,我应该做什么来支持这种文化?

更新

对 sphanley 的回答:

除了代表“New Riders of the BarbeQue”之外,它还是一个“骨架”(目前)实体,看起来像这样:

public class NRBQEntity
{
public NRBQEntity()
{

}

public String Value { get; set; }
}

更新 2

回答另一个用户:

这不是我的代码,所以我只是在尝试理解它;它已作为我复制/重构现有独立项目的起点,将其合并到“the”解决方案中。话虽如此,为了回答您的问题,这里是解决方案中“GetTestMessage()”的所有实例:

[HttpGet]
[Route("api/Test/{id1}/{id2}")]
public NRBQEntity GetTestMessage(String id1, String id2)
{
return NRBQClient.GetTestMessage(id1, id2);
}

[HttpGet]
[Route("api/Test/{id1}/{id2}")]
public NRBQEntity GetTestMessage(String id1, String id2)
{
return NRBQService.GetNRBQEntity(id1, id2);
}

public interface INRBQClient
{
NRBQEntity GetTestMessage(String id1, String id2);
}

public NRBQEntity GetTestMessage(String id1, String id2)
{
var res = RESTAPIClient.GET<NRBQEntity>(null
, new Uri(NRBQClientSettings.NRBQAPI)
, String.Format("api/Test/{0}/{1}"
, id1
, id2)
);

if (res.status != RequestResultStatus.Success)
{
throw new Exception(res.message);
}

return res.result;
}

...以及这个测试:

[TestFixture, Category(DRBCOMMON.UnitTests.Categories.IntegrationTest)]
public class NRBQClientIntegrationTests
{

[Test]
public void TestNRBQInterface()
{
var NRBQClient = IOC.container.Resolve<INRBQClient>();

var s = NRBQClient.GetTestMessage("GET", "SORTY");

Assert.Greater(s.Value.Length, 0);
}
}

最佳答案

Which culture is trying to be supported

在有问题的行周围放置一个 try/catch 并捕获异常。在 catch block 内放置一个断点并调试您的代码。检查抛出的 CultureNotFoundExceptionInvalidCultureName 属性。这将告诉您正在尝试使用但未在系统上找到的文化。

Why is it not supported

Windows 有一组内置的文化(What cultures are supported by the CultureInfo class in .NET 3.5?http://msdn.microsoft.com/en-us/goglobal/bb896001.aspx)。如果 InvalidCultureName 中列出的文化不在列表中,则不支持。

What, if anything, should I do to support the culture?

这取决于 InvalidCultureName 是什么。如果您合法地尝试使用不受支持的文化(例如,您有一个多语言/多区域站点并希望支持每种文化的英语),您可能有创建新文化的合法需要。例如,我在一个网站上工作,http://www.oneill.com ,我们希望在其中拥有荷兰站点的法语版本 (http://www.oneill.com/nl-fr)。我们必须创建一个新的文化并使用以下说明将其安装在 Web 服务器上:http://msdn.microsoft.com/en-us/library/ms172469(v=vs.90).aspx

如果您没有做任何花哨的文化方面的事情,则 asp.net 存在一些已知问题,涉​​及框架根据可能不存在的目录错误地创建 CultureInfo 实例:

在那种情况下,解决方案似乎是关闭异常并忽略它。

关于c# - 为什么我得到 "Culture is not supported"以及如果有的话,我应该怎么做?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24332304/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com