<p>Nancy 2.0.0-clinteastwood 反馈</p>

创建于 2016-12-22  ·  8评论  ·  资料来源: NancyFx/Nancy

如果您发现任何问题,请打开一个问题并提供尽可能多的信息,以帮助我们确定您的问题。 或者,如果您认为可以帮助解决问题,请随时提交拉取请求。 如果您需要指导,了解如何开始使用拉取请求,请查看我们的贡献指南。 确保您不会错过样式指南,我不会:D

注意:因为 Nancy 2.0-clinteastwood 是一个预发布版本,您必须使用-pre切换来安装软件包,即install-package Nancy -pre

请使用此问题发布与任何特定报告的错误或拉取请求不直接相关的评论。

去做

以下是在2.0.0-clinteastwood发布之后需要执行的已识别任务列表,并且应该在2.0.0-dangermouse发布之前完成。 编辑 TODO 列表并在找到项目时添加项目,添加指向发送以关闭它们的拉取请求的链接

  • [x] 确保AsyncUsageAnalyzers它在所有project.jsonpackages.config中设置为构建依赖项 正确的示例在此处镜像 - (拉取请求 #2700 @jchannon
  • [x] 删除所有项目(包括 Nancy)中的所有旧*.nuspec文件(pull-request #2658 @jchannon)
  • [x] 更新Nancy.Hosting.Aspnet\project.json以在包中包含web.config.transform (pull-request #2661 @thecodejunkie)
  • [x] 更新Nancy.ViewEngines.Razor\project.json以在包中包含app/web.config.transform (pull-request #2661 @thecodejunkie)
  • [ ] 更新Nancy.ViewEngines.Razor\project.json以在包中包含Nancy.ViewEngines.Razor.BuildProvider (包括构建目标)

计划变更

  • [ ] 删除Request.CookiesRequest.Headers.Cookie之一,参见 #2628 进行讨论
  • [] 改进 Before 和 After 钩子语法和功能 #2665
  • [] 调查“Nancy.Routing.Route.Invoke #2623 的潜在性能问题”
  • [ ] 添加对内容协商的配置支持。 有关自动扩展解析的讨论,请参见 #2671
  • [ ] 更新测试基础设施以支持 netstandard,请参阅 issue #2612 和 pull-request #2628
  • [] 将剩余的子系统转换为异步,请参阅 pull-request #2577
  • [ ] 删除StaticConfiguration的最后剩余部分

已知限制

  • 某些软件包可能会安装AsyncUsageAnalyzers作为依赖项。 这应该可以安全删除,并且不会包含在2.0.0-dangermouse中,因为它将在所有项目中标记为构建依赖项
  • Nancy.Hosting.Aspnet不会应用*.config转换`,要连接主机,您必须自己应用它
  • Nancy.ViewEngines.Razor不会应用*.config转换来连接视图引擎配置选项,您必须自己应用它
  • NuGet 包中缺少Nancy.ViewEngines.Razor的构建提供程序,导致 Nancy Razor 视图中的语法突出显示问题
Improvement Epic

最有用的评论

这是因为基础模块没有 IoC 容器可以满足的构造函数。 它不知道如何处理string 。 如果BaseModule不应该被自己调用,我建议你让它abstract ...

所有8条评论

这会编译,但会引发运行时NullReferenceException

pipelines.BeforeRequest.AddItemToStartOfPipeline((ctx, _) =>
{
    // do stuff
    // Func<NancyContext, Response>, Func<NancyContext, CancellationToken, Response>
    return null;
});

这有效:

pipelines.BeforeRequest.AddItemToStartOfPipeline((ctx, _) =>
{
    //do stuff
    // Func<NancyContext, CancellationToken, Task<Response>>
    return Task<Response>.FromResult((Response)null);
});

我花了一点时间把头撞在墙上,直到我弄清楚这既不是超级骗子也不是快乐。

@danbarua谢谢。 我已经打开了https://github.com/NancyFx/Nancy/issues/2665因为我想在我们有时间查看引导程序后立即对管道进行大修(这将在我已将我们移至新的 csproj 格式,这正在 #2720 中发生)

牦牛剃须! 😄

此代码抛出异常,这是错误吗?

```C#

公共类 BaseModule : NancyModule
{
公共 BaseModule(字符串 url):base(url)
{
//自定义逻辑
}
}

公共类 A:BaseModule
{
公共A():基地(“urlA”)
{

}

}

公共类 B:NancyModule
{
公共 B()
{

}

}


System.InvalidOperationException 发生
H结果=0x80131509
Message=在组合过程中尝试满足其中一个依赖项时出现问题,请确保您已在容器中注册了所有新依赖项并检查内部异常以获取更多详细信息。
来源=
堆栈跟踪:
在 Nancy.Bootstrapper.NancyBootstrapperBase 1.SafeGetNancyEngineInstance() at Nancy.Bootstrapper.NancyBootstrapperBase 1.GetEngine()
在 Nancy.Owin.NancyMiddleware.UseNancy(NancyOptions 选项)
在 E:visual_studiopiggy-banksourcePiggyBank.SiteStartup.cs:line 31 中的 Nancy.Owin.DelegateExtensions.UseNancy(Action 1 builder, NancyOptions options) at PiggyBank.Site.Startup.<>c.<Configure>b__2_0(Action 1 x)
在 Microsoft.AspNetCore.Builder.OwinExtensions.UseOwin(IApplicationBuilder 生成器,Action`1 管道)
在 PiggyBank.Site.Startup.Configure(IApplicationBuilder app, IHostingEnvironment env, ILoggerFactory loggerFactory) 在 E:visual_studiopiggy-banksourcePiggyBank.SiteStartup.cs:line 31

内部异常1:
TinyIoCResolutionException:无法解析类型:Nancy.NancyEngine

内部异常 2:
TinyIoCResolutionException:无法解析类型:Nancy.Routing.DefaultRequestDispatcher

内部异常 3:
TinyIoCResolutionException:无法解析类型:Nancy.Routing.DefaultRouteResolver

内部异常 4:
TinyIoCResolutionException:无法解析类型:Nancy.Routing.RouteCache

内部异常 5:
TinyIoCResolutionException:无法解析类型:BaseModule

内部异常 6:
TinyIoCResolutionException:无法解析类型:System.String

内部异常 7:
TinyIoCResolutionException:无法解析类型:System.Char []

内部异常 8:
ArgumentNullException:值不能为空。

```

这是因为基础模块没有 IoC 容器可以满足的构造函数。 它不知道如何处理string 。 如果BaseModule不应该被自己调用,我建议你让它abstract ...

老的:

Get["post/{id}"] = Get["old/post/{id}"] = p =>{};

新(2.0):

?

Get("post/{id}", MyMethod);
Get("old/post/{id}", MyMethod);

Get("post/{id}", MyMethod);
Get("old/post/{id}", MyMethod);

这种用法增加了一些间接性。 我个人不喜欢这样。 不过不是问题。

也许有可能有一些方法重载来流利的表达? 例子:

Get("post/{id}")
.Get("old/post/{id}")
.Post("whatever/{id}", p => { return HttpStatusCode.Ok });

另一种表达方式

Get("post/{id}")
.Get("old/post/{id}")
.Post("whatever/{id}")
.Do(p => { return HttpStatusCode.Ok });

如果需要,我可以尝试公关

此页面是否有帮助?
0 / 5 - 0 等级