Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何将模型绑定到动态创建的类nancyfx_C#_Json_Nancy - Fatal编程技术网

C# 如何将模型绑定到动态创建的类nancyfx

C# 如何将模型绑定到动态创建的类nancyfx,c#,json,nancy,C#,Json,Nancy,首先感谢所有愿意看看我问题的人。我对Nancyfx非常陌生,在尝试将JSON负载绑定到动态创建的类时遇到了问题。 我按照本文中的代码动态创建了类- 这是我创建动态类的代码块,我承认它本质上是 我不能为Nancy创建一个普通的模型类,因为我将有太多的模型只用于获取数据 //usual model class public Class PayloadModel { public string firstName {get; set;} public string lastName {ge

首先感谢所有愿意看看我问题的人。我对Nancyfx非常陌生,在尝试将JSON负载绑定到动态创建的类时遇到了问题。 我按照本文中的代码动态创建了类-

这是我创建动态类的代码块,我承认它本质上是

我不能为Nancy创建一个普通的模型类,因为我将有太多的模型只用于获取数据

//usual model class
public Class PayloadModel
{
   public string firstName {get; set;}
   public string lastName {get; set;}
}

我必须动态创建该类的原因是,我收到的JSON负载从1个字段到30个字段不等。另一个原因是我想让它尽可能灵活。通过上这门课,我就被这门课上的任何东西束缚住了。任何建议或指导都会大有裨益

听起来您最好使用动态类型:

CodeJunkie有一个自定义的动态模型绑定器。您应该能够使用它来执行以下操作:


dynamic model=this.Bind()

您的代码中有什么不起作用?例如,this.bind是否抛出异常或?抱歉,可能应该说明发生了什么。它没有绑定到动态类。与其说它引发了异常,还不如说模型类中的值为null。我可以通过它访问传入的json负载吗?@norm15如果使用“动态”,那么您可以访问任何属性,如
model.UserId
model[“UserId”]
-如果您使用
var
,它将不起作用,尽管您可以在var上使用
[“UserId”]
,因为它是一个字典。是的,我使用了dynamic model=this.Bind(),我有一个不会更改的“model”类,这非常有效。我的问题是,由于业务需求,我不能有一个“模型”类,所以我在运行时编程地创建了一个“模型”类。然后,我尝试将json数据包绑定到该模型,但结果是空值。对不起,如果它看起来这么凌乱,我不太明白。使用dynamic可以序列化/反序列化为JSON。并获取传入的所有数据。无需创建代理对象。@Phill这是否适用于嵌套的深度模型?(即作为参数传递的具有深度层次结构的json)
  var myType = CompileResultType(metadata);
  var myObject = Activator.CreateInstance(myType);
  var b = this.BindTo(myObject);
//usual model class
public Class PayloadModel
{
   public string firstName {get; set;}
   public string lastName {get; set;}
}