我创建了2个项目:
将文件Views \ other.html设置为嵌入资源的类库。
使用Nancy自托管设置,bootstrapper和nancy模块的控制台应用程序,只需通过返回名为“other.html”的视图(在另一个程序集中定义的视图)来响应GET。
< / LI> 醇>Bootstrapper配置:
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)的行时,app无法启动以下错误:
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.
我在这里缺少什么?
答案 0 :(得分:0)
问题已解决:https://groups.google.com/forum/#!topic/nancy-web-framework/9N4f6-Y4dNA
看起来目前可用的Nuget包不包含此修复程序!!!
我反编译了0.22 nuget包,对我而言,这个改变并不存在。它在github上。