私はクラスをWCFを通過させようとしています。これらは直列化されていない抽象クラス以外の問題はありません。 これを避ける方法はありますか?WCFを介した抽象クラスのプロパティのシリアル化に関する問題
[DataContract]
[KnownType("GetKnownTypes")]
public class BusinessObject
{
public static Type[] GetKnownTypes()
{
// only returns the different types my "Field" abstract class can take
return Services.WCFRIAKnownTypesHelperService.FieldsKnownTypes.ToArray();
}
[DataMember]
public String ID { get; set; }
[DataMember]
public List<Section> Sections { get; set; }
[DataMember]
public List<Field> Fields { get; set; }
}
そして今、私のフィールドクラス
[DataContract]
public abstract class Field
{
[DataMember]
public String FieldID { get; set; }
[DataMember]
public String Title { get; set; }
[DataMember]
public Object Content { get;set; }
}
それが動作しないのはなぜ?
私の問題は、フィールドクラスではなく、うっかりエリアアされているBusinessObjectです。 – Nicolas
@Nicolas、あ、すみません。この場合、すべての可能な子オブジェクトを指定することによって、 'Field'クラスを' KnownType'属性で飾る必要があります。 –