3

モジュールの各コンストラクターに異なる文字列を挿入したいと考えています。モジュールを構築するファクトリ メソッドを登録します。その後、電話container.Resolve<T>()をかけることができ、すべて順調です。なんらかの理由で、ナンシーが私のモジュールを解決しようとすると、エラーがスローされます

Nancy.TinyIoc.TinyIoCResolutionException: タイプを解決できません: Plugin.HomeModule ---> Nancy.TinyIoc.TinyIoCResolutionException: タイプを解決できません: System.String

public class HomeModule : NancyModule
{
    public HomeModule(string text)
    {
    }
}

protected override void ConfigureApplicationContainer(TinyIoCContainer container)
{
    base.ConfigureApplicationContainer(container);
    container.Register<HomeModule>((ctr, param) => { return new HomeModule("text"); });
    HomeModule module = container.Resolve<HomeModule>();
}

ConfigureRequestContainer()また、同じ結果で登録を試みました。私も試しcontainer.Register<HomeModule>(new HomeModule("some text"));ましたAsSingleton()。を使用して文字列型に実装を登録できますcontainer.Register<string>("text")が、これではすべてのモジュールに同じ文字列が挿入されます。

Nancy が解決できるように、モジュール コンストラクターを登録するにはどうすればよいですか?

4

3 に答える 3