は、次の例を考えてみましょう:OOD - 現在のクラスで宣言されているプロパティが継承されいるかを調べるた対
今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文字列にJUST継承プロパティをシリアル化です。例えば、私は何とかInheritingClassでわずか3つのプロパティのうち、JSONオブジェクトを作成したいが、私は行った場合:
InheritingClass a = new InheritingClass();
JavaScriptSerializer jss = new JavaScriptSerializer();
string jsonString = jss.Serialize(a);
jsonString値はBaseClassののすべてのプロパティだけでなく、すべてを持っていますInheritingClassのプロパティの私はこれらのプロパティのすべてを継承しているので、これは正常であると理解しています。私が探しているのは、継承されたプロパティを含めずに、InheritingClassの3つのプロパティのみからJSON文字列を構築することです。
これは可能ですか?
なぜそれをしたいですか? – Oded
オブジェクト指向設計や多形性問題よりも直列化問題に似ています。 'BaseClass'プロパティの直列化を無効にする方法を提案してください。 – Reddog
あなたの遺産の瑕疵に非常によく似たにおいがします。時にはオブジェクトの一部だけが必要な場合は、is-a関係が存在すると主張するのは難しくなります。つまり、aaaの構成と同じように聞こえます。 –