ResX 自动生成的文件,用于特定于文化的资源访问
ResX Autogenerated File for Culture Specific Access to Resources
有没有一种方法可以自动生成一个文件,该文件可以执行线程安全的、特定于文化的资源访问? Visual Studio 为我的 resx 文件生成的当前 Resource.Designer.cs class 看起来像:
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resource()
{
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Resources.ResourceManager ResourceManager
{
get
{
if (object.ReferenceEquals(resourceMan, null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ServiceModels.Resource", typeof(Resource).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized string similar to Hiii.
/// </summary>
public static string Hello
{
get
{
return ResourceManager.GetString("Hello", resourceCulture);
}
}
这允许安全访问 "Hello" 资源,但在使用不同文化的不同资源文件时,它似乎不是线程安全的。例如,使用此代码,您可以通过
设置资源
Culture = CultureInfo.SomeCulture;
这将为使用 ResourceManager 的所有线程设置区域性。有没有一种方法可以自动生成一个文件,允许线程安全、特定于文化的资源访问,或者我必须自己实现一个?
Thread.CurrentThread.CurrentCulture
是一个特定于线程的 Culture
设置,大多数库将其用于格式化 date/times 或数字,在您的情况下用于获取翻译的字符串。
有没有一种方法可以自动生成一个文件,该文件可以执行线程安全的、特定于文化的资源访问? Visual Studio 为我的 resx 文件生成的当前 Resource.Designer.cs class 看起来像:
private static global::System.Resources.ResourceManager resourceMan;
private static global::System.Globalization.CultureInfo resourceCulture;
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
internal Resource()
{
}
/// <summary>
/// Returns the cached ResourceManager instance used by this class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Resources.ResourceManager ResourceManager
{
get
{
if (object.ReferenceEquals(resourceMan, null))
{
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ServiceModels.Resource", typeof(Resource).Assembly);
resourceMan = temp;
}
return resourceMan;
}
}
/// <summary>
/// Overrides the current thread's CurrentUICulture property for all
/// resource lookups using this strongly typed resource class.
/// </summary>
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
public static global::System.Globalization.CultureInfo Culture
{
get
{
return resourceCulture;
}
set
{
resourceCulture = value;
}
}
/// <summary>
/// Looks up a localized string similar to Hiii.
/// </summary>
public static string Hello
{
get
{
return ResourceManager.GetString("Hello", resourceCulture);
}
}
这允许安全访问 "Hello" 资源,但在使用不同文化的不同资源文件时,它似乎不是线程安全的。例如,使用此代码,您可以通过
设置资源Culture = CultureInfo.SomeCulture;
这将为使用 ResourceManager 的所有线程设置区域性。有没有一种方法可以自动生成一个文件,允许线程安全、特定于文化的资源访问,或者我必须自己实现一个?
Thread.CurrentThread.CurrentCulture
是一个特定于线程的 Culture
设置,大多数库将其用于格式化 date/times 或数字,在您的情况下用于获取翻译的字符串。