【发布时间】:2017-10-30 21:47:52
【问题描述】:
我有以下 POCO 课程。我不希望无参数构造函数公开。
public class FileDownloadRequest
{
//public FileDownloadRequest() { }
public FileDownloadRequest(int fileId, RepositoryFolderTypes fileType) //RepositoryFolderTypes is an enum, not a class
{
this.FileId = fileId;
this.FileType = fileType;
}
public int FileId { get; set; }
public RepositoryFolderTypes FileType { get; set; } //an enum
}
当我尝试对以下控制器操作发出 https://10.27.8.6/Files/DownloadFile?fileId=1&folderType=SRC 请求时,我收到一条错误消息,指出此对象不存在无参数构造函数。
[HttpGet]
public async Task<HttpResponseMessage> DownloadFile([FromUri] FileDownloadRequest request)
{
}
是否可以有一个非公共的构造函数,还是绝对需要一个公共的?
【问题讨论】:
-
XY problem。 为什么你不想要一个 MVC 默认需要的无参数构造函数?
-
@TimothyGroote 不,这个问题只是提到了 OP 得到的错误的解决方案,即添加一个无参数的构造函数。
-
隐藏具有读/写属性的 POCO 的无参数构造函数只是废话
-
@CodeCaster 嗯,应该读得更好。我想有人澄清了为什么它需要在该线程中公开。对不起。
-
This answer 类似的问题可能会对您有所帮助。
标签: c# asp.net model-view-controller model-binding