c# – WCF中的远程主机强制关闭现有连接
发布时间:2020-12-15 07:44:15 所属栏目:百科 来源:网络整理
导读:我有一个名为’Template’的抽象类,定义如下: [DataContract]public abstract class Template{ [DataMember] public virtual int? Id { get; set; } [DataMember] public virtual string Title { get; set; } [DataMember] public virtual byte[] TemplateD
我有一个名为’Template’的抽象类,定义如下:
[DataContract] public abstract class Template { [DataMember] public virtual int? Id { get; set; } [DataMember] public virtual string Title { get; set; } [DataMember] public virtual byte[] TemplateDoc { get; set; } [DataMember] public virtual bool IsSystemTemplate { get; set; } } 两个派生类:UserTemplate和SystemTemplate实现上面的抽象类,定义如下: public class UserTemplate : Template { [DataMember] public virtual Int32? OfficeId { get; set; } [DataMember] public virtual Int32? UserId { get; set; } protected UserTemplate() { } public UserTemplate(string title,byte[] templateDoc,string templateDocName,TemplateType templateType,int officeId,int? userId) { this.Title = title; this.TemplateDoc = templateDoc; this.IsSystemTemplate = false; this.OfficeId = officeId; this.UserId = userId; } } public class SystemTemplate : Template { [DataMember] public virtual Int32? MultiListGroupId { get; set; } protected SystemTemplate() { } public SystemTemplate(string title,int multiListGroupId) { this.Title = title; this.TemplateDoc = templateDoc; this.IsSystemTemplate = true; this.MultiListGroupId = multiListGroupId; } } 现在,当我尝试调用以下服务方法时: List<Template> GetTemplatesByTemplateType(int officeId,int? userId,TemplateType templateType) 我收到此错误:
是因为我试图返回抽象类的原因吗? 解决方法
是的,问题是您的抽象基类需要使用KnownType和XmlInclude属性进行修饰.见:
http://geekswithblogs.net/ugandadotnet/archive/2008/05/27/serializing-an-abstract-data-contract.aspx
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |