我最初是在MVC站点中构建它的,然后它起作用了。我需要将此移植到Azure函数中。像在Azure Function环境中一样,没有Startup.cs(即没有Configure和ConfigureServices),我基于以下内容创建自己的ServiceCollection:https://codeopinion.com/using-razor-in-a-console-application/
模板和模型渲染工作正常,但是我找不到本地化的资源。我在视图中注入了IViewLocalizer,并且可以正常工作,但最终还是得到了字符串键而不是本地化的字符串值。
请注意,由于我没有公共无效的Configure(IApplicationBuilder应用程序,IHostingEnvironment env,ILoggerFactory loggerFactory),因此我没有配置任何中间件。我怀疑这可能是问题的根源。
或者,仅查找资源会不会有问题?我有这个结构:
Root
|-Templates
|-Foo
|- Foo-External.cshtml
|-Resources
|-Templates
|-Foo
|-Foo-External.en-US
|-Foo-External.es-SP
|-Foo-External.pt-BR
依此类推。
看起来字符串已被编译为:
Directory.GetCurrentDirectory()\ bin \ zh-CN \ MyProjectName.resources.dll Directory.GetCurrentDirectory()\ bin \ es-SP \ MyProjectName.resources.dll 等
当我反映一个dll时,我可以看到它具有:
MyProjectName.resources.dll
|-Resources
|-My.Fully.Qualified.Namespace.Foo-External.es-SP.resources
请注意,资源所在的命名空间与程序集名称不同。我刚刚看到一些文章指出了这个问题。我不确定这是我正在运行的还是中间件。
谢谢! 约翰