別の会社から一連の C# コードを引き継いだばかりで、最初のビルドを機能させるのに大きな問題があります。このコードでは、MVC の代わりに 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
コードはライブ atm であるため、これは Visual Studio 側の何らかの解釈の問題であると 100% 確信しています。私はVSでそれを構築することはできません。
私が見逃している、または間違っていることを知っている人はいますか? 覚えて; コードは機能しており、atm が稼働しています。