c#-有关MVC的Nancy Framework(和NewRelic)的问题
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了c#-有关MVC的Nancy Framework(和NewRelic)的问题,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2627字,纯文字阅读大概需要4分钟。
内容图文
![c#-有关MVC的Nancy Framework(和NewRelic)的问题](/upload/InfoBanner/zyjiaocheng/658/adebf43cd51448eeb8f98b6089dfd9dc.jpg)
我刚从另一家公司那里接过一堆C#代码,但要使第一个版本开始工作却遇到了很大的麻烦.该代码使用称为Nancy的框架,而不是MVC.我以前从未使用过此框架,可能只有一个真正简单的答案可以回答我的问题,如果我错过了有关Nancy的一些基本知识,请在此处表示歉意.
这个问题归结为一个类,处理应用程序的初始化(我认为)从我读到的内容来看,这是非常标准的Nancy:
using System;
using Nancy;
using NewRelicAgent = NewRelic.Api.Agent.NewRelic;
using Nancy.Bootstrapper;
using Nancy.Routing;
public class NewRelicStartup : IApplicationStartup
{
private readonly IRouteResolver routeResolver;
public NewRelicStartup (IRouteResolver routeResolver)
{
this.routeResolver = routeResolver;
}
public void Initialize(IPipelines pipelines)
{
pipelines.BeforeRequest.AddItemToStartOfPipeline(
context =>
{
var route = routeResolver.Resolve(context);
if (route == null || route.Item1 == null || route.Item1.Description == null) // probably not necessary but don't want the chance of losing visibility on anything
{
NewRelicAgent.SetTransactionName(
context.Request.Method,
context.Request.Url.ToString());
}
else
{
NewRelicAgent.SetTransactionName(
route.Item1.Description.Method,
route.Item1.Description.Path);
}
return null;
});
pipelines.OnError.AddItemToEndOfPipeline(
(context, ex) => {
NewRelicAgent.NoticeError(ex);
return null;
}
);
}
}
在构建此代码时,我遇到几个错误,其中一些是:
Delegate 'System.Func<Nancy.NancyContext,System.Threading.CancellationToken,System.Threading.Tasks.Task<Nancy.Response>>' does not take 1 arguments
Cannot convert lambda expression to type 'Nancy.PipelineItem<System.Func<Nancy.NancyContext,System.Threading.CancellationToken,System.Threading.Tasks.Task<Nancy.Response>>>' because it is not a delegate type
这是我得到的错误类型的屏幕截图:
https://www.dropbox.com/s/cigcfc4sfj8batg/Nancy%20Error.PNG
我100%确信,这是Visual Studio方面的某种解释问题,因为代码是实时atm.我只是无法在VS中构建它.
你们中的任何人是否知道我的缺失或做错了什么?记得;该代码可以正常工作并且可以正常工作.
解决方法:
尝试更改“返回null;” “返回(Nancy.Response)为空;”
编辑:抱歉,只看了屏幕截图-它使用的是一些已更改为0.20的属性,因此您将不得不手动修复代码(它现在在核心是异步的),或暂时回滚到0.19,然后重新-稍后再编写该段代码.
再次编辑:在此之前:
pipelines.BeforeRequest.AddItemToStartOfPipeline(
context =>
{
var route = routeResolver.Resolve(context);
if (route == null || route.Route == null || route.Route.Description == null) // probably not necessary but don't want the chance of losing visibility on anything
{
NewRelicAgent.SetTransactionName(
context.Request.Method,
context.Request.Url.ToString());
}
else
{
NewRelicAgent.SetTransactionName(
route.Route.Description.Method,
route.Route.Description.Path);
}
return null;
});
内容总结
以上是互联网集市为您收集整理的c#-有关MVC的Nancy Framework(和NewRelic)的问题全部内容,希望文章能够帮你解决c#-有关MVC的Nancy Framework(和NewRelic)的问题所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。