首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >序列化派生类而不访问基类

序列化派生类而不访问基类
EN

Stack Overflow用户
提问于 2014-05-21 16:52:58
回答 1查看 141关注 0票数 3

我需要在我的Windows 7项目中序列化一个派生类,以获得tombstoning状态。但我无法访问由库-公开的基类代码。

代码语言:javascript
复制
//don't have access to this class
public class A
{
     public string member1 {get;set;}
}

[DataContract]
public class B : A
{
     public B(){}; //CTOR

     [DataMember]
     public string member2 {get;set;}
}

当系统尝试序列化时(我将它保存到PhoneApplicationPage.State =>以便自动序列化):它不工作,异常(InvalidDataContractException)表示,“类型'B‘不能继承没有用DataContractAttribute或SerializableAttribute标记的类型。考虑用DataContractAttribute或SerializableAttribute标记基本类型'A’,或者从派生类型中删除它们”。

我是否应该实现自定义序列化程序?我如何做到这一点(在Windows 7中)

EN

回答 1

Stack Overflow用户

发布于 2015-04-09 00:15:28

与其从库类派生,不如使用该类型的成员变量,并通过自定义getter和setter公开库类成员的属性:

代码语言:javascript
复制
[DataContract]
public class MyClass
{
    BaseClass Wrapped { get; set; }

    public MyClass()
    {
        Wrapped = new BaseClass( );
    }

    [DataMember]
    public string member1
    {
        get { return Wrapped.member1; }
        set { Wrapped.member1= value; }
    }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23789414

复制
相关文章

相似问题

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