Nancy当构造函数具有参数时无法解析类型

时间:2018-06-22 12:11:42

标签: c# .net nancy

当我有以下代码时:

public class Webserver: NancyModule
{
    public Webserver()
    {
        Post[""] = _ => 200;
    }
}

一切正常,但是当我有这个

public class Webserver: NancyModule
{
    public Webserver(string id="")
    {
        Post[""] = _ => 200;
    }
}

我有8个内部异常,其中之一是TinyIoCResolutionException: Unable to resolve type: <namespace>.Webserver


在一个可能相关的问题中,当我有以下代码时,我会遇到相同的异常:

public class Webserver<T> : NancyModule
{
    public Webserver()
    {
        Post[""] = _ => 200;
    }
}

我已经安装了Nancy版本1.4.3,并且已经安装了Nancy.Hosting.Self版本1.4.1

1 个答案:

答案 0 :(得分:0)

您的模块必须可以使用应用程序的TinyIocContainer进行解析。这意味着您不能传递原始的构造函数参数,因为TinyIoc将不知道如何创建它们。您作为参数传递给模块的所有内容本身都必须可以通过容器解析。

第二种情况也是一样。使模块通用后,TinyIoc将不知道如何创建它。您可以为模块创建一个抽象的通用基类,但是每个公开的模块都必须关闭该通用类。