请看下面的例子声明:OOD在C#中 - 确定哪些属性继承VS这在当前类
public class BaseClass
{
public string StringInBaseClass {get;set;}
public int IntInBaseClass {get;set;}
}
public InheritingClass : BaseClass
{
public long LongInInheritingClass {get;set;}
public long ShortInInheritingClass {get;set;}
public long CharInInheritingClass {get;set;}
}
现在,我想要做的是序列化只是继承属性的JSON字符串。例如,我想以某种方式创建一个JSON对象了刚刚在InheritingClass 3个属性,但如果我这样做:
InheritingClass a = new InheritingClass();
JavaScriptSerializer jss = new JavaScriptSerializer();
string jsonString = jss.Serialize(a);
的jsonString值将所有的BaseClass的性能以及所有InheritingClass的属性。我知道这很正常,因为我继承了所有这些属性。我期望做的不是包括那些继承的属性,并且只有InheritingClass中的3个属性构建JSON字符串。
这可能吗?
为什么要这么做? – Oded 2011-12-14 19:49:15
听起来更像是一个序列化问题,而不是一个面向对象的设计和多态问题。建议如何禁用`BaseClass`属性的序列化。 – Reddog 2011-12-14 19:51:37