南希嵌入了其他集会的观点
本文关键字:观点 其他 | 更新日期: 2023-09-27 17:58:10
我已经创建了两个项目:
-
将文件Views''other.html设置为嵌入资源的类库。
-
带有Nancy自托管设置、引导程序和Nancy模块的控制台应用程序,该模块只需通过返回名为"other.html"的视图(在另一个程序集中定义的视图)来响应GET。
引导程序配置:
protected override void ConfigureApplicationContainer(TinyIoCContainer container)
{
base.ConfigureApplicationContainer(container);
ResourceViewLocationProvider.RootNamespaces.Add(GetType().Assembly, "ConsoleApplication1.Views"); // (1)
ResourceViewLocationProvider.RootNamespaces.Add(typeof(Class1).Assembly, "ClassLibrary1.Views");
}
protected override NancyInternalConfiguration InternalConfiguration
{
get { return NancyInternalConfiguration.WithOverrides(OnConfigurationBuilder); }
}
private void OnConfigurationBuilder(NancyInternalConfiguration x)
{
x.ViewLocationProvider = typeof(ResourceViewLocationProvider);
}
应用程序使用此配置正常启动,但无法返回"other.html",后者被定义为其他库的嵌入资源。
当我返回嵌入主控制台应用程序中的视图时,它可以正常工作。
当我删除标记为(1)的行时,应用程序无法启动,出现以下错误:
Unable to resolve type: Nancy.ViewEngines.ViewEngineApplicationStartup
Only one view was found in assembly ConsoleApplication1, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null, but no rootnamespace had been registered.
我在这里错过了什么?
问题在以下位置解决:https://groups.google.com/forum/#!主题/nancy web框架/9N4f6-Y4dNA
看起来当前可用的Nuget包不包含此修复程序!!!
我反编译了0.22 nuget包,对我来说,这个变化并不存在。它在github上。