По счастливой случайности, я использую проект-прототип hello world, чтобы протестировать целый ряд вещей в нашем конвейере сборки.
Если вы правильно настроили свои файлы ресурсов, вот несколько примеров кода, которые могут помочь. Кодовая документация удалена для краткости.
public class HelloWorld
{
public CultureInfo CultureInfo { get; private set; }
public HelloWorld()
{
CultureInfo = CultureInfo.CurrentCulture;
}
public HelloWorld(string culture)
{
CultureInfo = CultureInfo.GetCultureInfo(culture);
}
public string SayHelloWorld()
{
return Resources.ResourceManager.GetString("HelloWorld", CultureInfo);
}
}
[TestFixture]
public class HelloWorldFixture
{
HelloWorld helloWorld;
[Test]
public void Ctor_SetsCultureInfo_ToCurrentCultureForParameterlessCtor()
{
helloWorld = new HelloWorld();
Assert.AreEqual(helloWorld.CultureInfo, CultureInfo.CurrentCulture,
"Expected CultureInfo to be set as CurrentCulture");
}
[Test]
public void Ctor_SetsCultureInfo_ToAustralianCulture()
{
helloWorld = new HelloWorld("en-AU");
Assert.AreEqual(helloWorld.CultureInfo.Name, "en-AU",
"Expected CultureInfo to be set to Australian culture");
}
[Test]
[ExpectedException(typeof(ArgumentException))]
public void Ctor_ThrowsException_InvalidCultureName()
{
helloWorld = new HelloWorld("Bogus");
}
[Test]
public void SayHelloWorld_ReturnsFallbackResource_OnUndefinedResource()
{
helloWorld = new HelloWorld("en-JM");
string result = helloWorld.SayHelloWorld();
Assert.AreEqual("Hello, World.", result, "Expected fallback resource string to be used");
}
[Test]
public void SayHelloWorld_ReturnsAustralianResource_OnAustralianResource()
{
helloWorld = new HelloWorld("en-AU");
string result = helloWorld.SayHelloWorld();
Assert.AreEqual("G'Day, World.", result, "Expected australian resource string to be used");
}
}
Этот проект имеет файл Resources.resx с HelloWorld строковым ключом и "Hello, World" значением вместе с соответствующим Resources.en -AU.resx с HelloWorld строковым ключом и значением «G'Day, World» , а также другими, такими как zh-CH (我 隻 氣墊船 裝滿 晒 鱔. :) для проверки отображения неанглоязычных символов, отображаемых в связанном веб-проекте hello world.
Наконец, добавьте некоторые записи, чтобы показать используемую культуру (для краткости я взял это из этого примера), а также проверьте вывод вашего компилятора, чтобы убедиться, что AL.exe вызывается для связывания ваших сборок ресурсов (звучит так, как будто все в порядке) хотя).