私はかなり新しいNancyです。私が達成しようとしているのは、NancyModule
クラスを継承する基底クラスNancyBaseModule
を作成することです。このクラスは "共通のもの"を担当することになっています。拡張メソッドや静的メソッドでこの種の機能を隠す代わりに、このようにしたいと思います。ナンシー、モジュールがロードされていません
私が直面している問題は、単純なGET
メソッドを登録するために、この基本クラスに機能を追加することによって、この登録メソッドのFunc
がWebブラウザなどでアクセスしようとしたときに呼び出されないということです。実際、クラスのコンストラクタは呼び出されません。コンストラクタで少なくともHTTPメソッドに登録する必要があると私は思っています。私が "ダミー"パスを追加すればわかるように、それはすべて動作します。
これが私の基本クラスがどのように見えるかです:
public abstract class NancyBaseModule : NancyModule
{
public NancyBaseModule(string prefix) : base(prefix)
{
//Get("/dummy", p =>
//{
// return "Nothing interesting here, Cowboy.";
//});
var configurator = new NancyEndpointConfigurator()
{
RegisterWithReturnValue = (path, action) =>
{
Get(path, action);
}
};
RegisterEndpoints(configurator);
}
public abstract void RegisterEndpoints(INancyEndpointConfigurator configurator);
}
そして、私の派生クラス:原因ナンシーを使用して、知識の私の不足のために
public class AckService : NancyBaseModule
{
public AckService() : base("AckService")
{
}
public override void RegisterEndpoints(INancyEndpointConfigurator configurator)
{
configurator.WithReturnValue("/now", p =>
{
return $"Greetings. The time is: {DateTime.Now.ToString()}";
});
}
}
、私はこれがあればかなりわからないんだけどフレームワークの背後にある設計思想の観点から正しいアプローチを取ること。誰かが私が達成しようとしていることを理解している場合は、私は正しい方向に私を指差してください。