我正在通过T4创建自己的资源文件,因为它们保存在数据库中。
结果是例如:
namespace Resources
{
public class Backoffice {
internal static IResourceProvider resourceProvider =
new JsonResourceProvider(
"Backoffice",
(int)System.Web.HttpContext.Current.Session["ApplicationId"]);
public static string AlgemeenActief
{
get {
var resource =
resourceProvider.GetResource(
"AlgemeenActief",
CultureInfo.CurrentUICulture.Name);
if (string.IsNullOrEmpty(resource))
{
switch ($"{CultureInfo.CurrentUICulture.Name}_{(int) System.Web.HttpContext.Current.Session["ApplicationId"]}")
{
default:
case "nl-NL_6":
return "Actief";
case "en-GB_6":
return "Active";
}
}
return resource;
}
}
}
}
这允许我以与标准.NET资源相同的方式使用我的资源(我现在可以键入Resources.Backoffice.AlgemeenActief
,并且我有intellisense向我显示属性)。
我收到错误,因为该类未初始化。我不知道它们是如何在.NET中初始化的。我试图在microsoft资源类中找到构造函数的用法:
internal Backoffice() {
}
这不会返回任何结果。有谁知道如何启动资源对象以及我如何模仿它?
答案 0 :(得分:1)
在这种情况下,您可以使您的类静态:
public static class Backoffice
并像这样调用属性getter:
var resource = Backoffice.AlgemeenActief;
或者,保持您的类定义不变,并实例化一个BackOffice对象:
var backOffice = new BackOffice();
并像这样调用属性getter:
var resource = backOffice.AlgemeenActief;