域模型 类 拆分为单独的程序集

Domain Model classes split into a seperate assembly

我正在使用 webAPI2 创建一个 webAPI。
我创建了一些域模型 classes,它们是 webAPI 项目中模型文件夹的一部分。
这是数据请求模型 class

public class DataRequest 
{
    Field1
    Field2...
}

Controller class 和 Action 方法如下。

  [RoutePrefix("api/Data")]
  public class DataController : ApiController
  {
      [Route("")]
      [HttpPost]
     public IHttpActionResult Post(DataRequest request)
     {
     }
  }

以及json

中postman发出的数据请求体
{
   Field1:"Some Value",
   Field2: "Some Value"
}

模型绑定完美运行,我在 field1 和 field2 的 POST 操作方法中获取值。
我有一个带有辅助方法的单独项目,我想通过添加一些业务逻辑和数据请求 class 来扩展这个项目。因此,我创建了一个带有模型的单独项目,并将该项目添加为对助手和 api 项目的引用。
该项目使用此设置成功编译。但是当我在 Postman 中发出请求时,会调用 Action 方法,但请求参数中的所有字段都为空。
谷歌搜索向我指出了一些链接,这些链接解释了从单独的程序集加载控制器 classes,但没有提到从单独的程序集加载模型。

这是否被允许,如果是,任何人都可以让我知道如何让它工作。

终于,我解决了这个问题。 我有 DataRequest class 的 [Serializable] 属性,DataRequest class 的 Field2 被定义为 List<> 类型。 通过 this 堆栈溢出响应后,我从 DataRequest class 中删除了 [Serializable] 属性,这给了我一个错误,即类型 List<> 无法转换为 System.Array。
在此之后,我将 Field2 类型从列表更改为数组并且它起作用了。
最初,当我在 API 项目本身中定义了模型时,当 Field2 被声明为 Array 类型时,我收到了一个错误。这让我忽略了 Field2 类型的差异,但最终证明是罪魁祸首。