南希嵌入了其他集会的观点

本文关键字:观点 其他 | 更新日期: 2023-09-27 17:58:10

我已经创建了两个项目:

  1. 将文件Views''other.html设置为嵌入资源的类库。

  2. 带有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上。