C# 非参数构造函数绑定(Model.Bind)

C# 非参数构造函数绑定(Model.Bind),c#,nancy,C#,Nancy,我最近把我们的WebApi搬到了Nancy。到目前为止,还不错,但我有一个问题,我不知道如何解决 我们维护了许多传统上直接处理数据库访问的遗留应用程序。为了便于移动到新的基于REST的系统,我们创建了一个间接寻址,它允许遗留应用程序发送“命令”并接收数据集,这并不理想,但它允许我们以可靠的方式移动遗留系统 使用WebApi,来自请求主体的命令对象被反序列化为一个模型(通过Json.Net),使用[FromBody]没有问题。然而,当使用异常抛出时,它需要一个无参数构造函数 我不喜欢修改模型以适应

我最近把我们的WebApi搬到了Nancy。到目前为止,还不错,但我有一个问题,我不知道如何解决

我们维护了许多传统上直接处理数据库访问的遗留应用程序。为了便于移动到新的基于REST的系统,我们创建了一个间接寻址,它允许遗留应用程序发送“命令”并接收数据集,这并不理想,但它允许我们以可靠的方式移动遗留系统

使用WebApi,来自请求主体的命令对象被反序列化为一个模型(通过Json.Net),使用
[FromBody]
没有问题。然而,当使用异常抛出时,它需要一个无参数构造函数

我不喜欢修改模型以适应南希的想法。有没有办法让Nancy像WebApi一样反序列化并绑定请求中的Json?我注意到Nancy在内部处理Json序列化,这仅仅是将Json.Net引入混合的一个例子吗

有问题的构造函数:

  public DbCommandContainer(DatabaseType databaseType, 
                            CommandType commandType, 
                            string text, 
                            int timeout, 
                            IEnumerable<DbParameterContainer> parameters) 
公共DbCommandContainer(数据库类型DatabaseType, 命令类型命令类型, 字符串文本, int超时, IEnumerable参数) 编辑:

  public DbCommandContainer(DatabaseType databaseType, 
                            CommandType commandType, 
                            string text, 
                            int timeout, 
                            IEnumerable<DbParameterContainer> parameters) 

我引入了Json.Net,并使用它手动反序列化主体流。这很好,这意味着我只需要将Json.Net设置为默认的正文反序列化程序。

我们有一个Json.Net包,如果您安装Nancy.Serialization.JsonNet,它将自动连接。我想我们在Jabbr中讨论过这一点。默认绑定不处理带有构造函数的模型,您可以修改JSON.NET包来处理这个问题并提交一个PR,可能是我们考虑默认的南希绑定器。纠正乔恩,这是在对话之前,您想添加一个答案,我们可以标记为解决吗?