我在Nancy测试本地化并且能够使用EMBEDDED资源文件使其工作但问题是我不想要嵌入式资源文件,因为我希望允许通过GUI编辑它们或使用该文件(如果我进入数据库路由或将资源文件设置为"内容")。
根据doucmentation,您应该能够覆盖它以支持使用数据库但我无法使其工作(https://github.com/NancyFx/Nancy/wiki/Localization):
public class ResourceManager : ResourceBasedTextResource
{
public ResourceManager(IResourceAssemblyProvider resourceAssemblyProvider) : base(resourceAssemblyProvider)
{
}
public new string this[string key, NancyContext context]
{
get
{
return "HELO!";
}
}
}
这只是我在乱搞,但当我做@ Text.Localization时,我希望在Razor视图中。它应该返回" HELO!"对于一切......但它不起作用
答案 0 :(得分:2)
你的帖子中确实没有问题,所以我不得不猜测一下,并假设你没有得到任何例外,而是你没有看到& #34; HELO&#34!;在你看来
仅仅实施新的ResourceBasedTextResource
课程是不够的。这是一个核心组件,因此您必须明确告诉Nancy使用它。您可以通过覆盖InternalConfiguration
的{{1}}属性并告诉Nancy使用您的实现来实现此目的
您可以在该wiki页面链接的演示的Bootstrapper
中看到它https://github.com/NancyFx/Nancy/blob/8970ac9d6c7cf46e6060f0b83117c19fa18085c2/src/Nancy.Demo.Razor.Localization/DemoBootstrapper.cs#L11
此外,如果您不打算使用资源文件,那么您应该考虑从ITextResource接口继承。它是一个简单的界面,所以它应该是直截了当的。
HTH