首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是ServiceStack中所需的"a Request DTO“的无参数构造函数

是ServiceStack中所需的"a Request DTO“的无参数构造函数
EN

Stack Overflow用户
提问于 2012-02-10 22:21:06
回答 1查看 566关注 0票数 1

是ServiceStack中所需的"a Request DTO“的无参数构造函数

如果我注释掉无参数构造器

代码语言:javascript
复制
[DataContract]
[RestService("/Competitions/", "GET")]
[RestService("/Competitions/{Id}", "GET")]
public class Competitions
{
    [DataMember]
    public int CompetitionID { get; set; }
    [DataMember]
    public string CompName { get; set; }
    [DataMember]
    public string CompType { get; set; }
//public Competitions()
//{ 

//}

public Competitions(ABC abc)
    {
    this.CompetitionID = abc.abcID;
    this.CompName = abc.CompName;
    this.CompType = abc.CompType;
    }
}

当访问元数据页面http://localhost/api/xml/metadata?op=Competitions时,我会得到一个异常"No parameterless constructor servicestack“

堆栈跟踪是

代码语言:javascript
复制
[External Code] 
    ServiceStack.DLL!ServiceStack.WebHost.Endpoints.Metadata.XmlMetadataHandler.CreateMessage(System.Type dtoType = {Name = "Competitions" FullName = "FSI.API.ServiceModel.Competitions"}) Line 17 + 0x8 bytes C#
    ServiceStack.DLL!ServiceStack.WebHost.Endpoints.Metadata.BaseMetadataHandler.ProcessOperations(System.Web.UI.HtmlTextWriter writer = {System.Web.UI.HtmlTextWriter}, ServiceStack.ServiceHost.IHttpRequest httpReq = {ServiceStack.WebHost.Endpoints.Extensions.HttpRequestWrapper}) Line 56 + 0xe bytes    C#
    ServiceStack.DLL!ServiceStack.WebHost.Endpoints.Metadata.BaseMetadataHandler.Execute(System.Web.HttpContext context = {System.Web.HttpContext}) Line 34 C#
    ServiceStack.DLL!ServiceStack.WebHost.Endpoints.Support.HttpHandlerBase.ProcessRequest(System.Web.HttpContext context = {System.Web.HttpContext}) Line 20   C#
[External Code] 
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-02-10 22:42:20

XmlSerializer需要一个构造函数才能工作,您可以根据需要将其设置为内部的、私有的或受保护的。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9229226

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档