別の会社から一連の C# コードを引き継いだばかりで、最初のビルドを機能させるのに大きな問題があります。この問題は、「Topshelf」と呼ばれるフレームワークで使用される Lambda 構文にあるようです。これが基本的な知識である場合は申し訳ありませんが、私はマイクロソフトのプログラミングに慣れていないため、この問題を解決する方法がわかりません。
問題は、アプリケーション内のすべてのサービスを処理する単一の静的クラスに要約されます。
これは、設定方法に関するトップシェルフのドキュメントです: http://docs.topshelf-project.com/en/latest/configuration/quickstart.html
そして、これは実際の構成方法のコードです(一部ですが、画像を提供する必要があります):
public static void Main (string[] args)
{
XmlConfigurator.Configure ();
HostFactory.Run (
x =>
{
x.Service<InvoiceGenerator>(
s => {
s.SetServiceName("NAME");
s.ConstructUsing(name => new InvoiceGenerator());
s.WhenStarted(ser => ser.Start());
s.WhenStopped(ser => ser.Stop());
}
);
}
}
}
しかし、このようにすると、Visual Studio はコードのすべての行について文句を言います。エラーには次のものがあります。
Delegate 'System.Func<Tools.Services.InvoiceGenerator>' does not take 1 arguments
Not all code paths return a value in lambda expression of type 'System.Func<Tools.Services.InvoiceGenerator>'
コードはライブ atm であるため、これは Visual Studio 側の何らかの解釈の問題であると 100% 確信しています。私はVSでそれを構築することはできません。
私が見逃している、または間違っていることを知っている人はいますか? 覚えて; コードは機能しており、atm が稼働しています。
前もって感謝します。