2016-05-19 7 views
0

Можно ли передавать общие объекты клиенту, по общему я имею в виду любой с DataContract.Using общий способ отправки или получения различных типов объектов. В настоящий момент у меня есть что-то как это: enter code hereкак использовать общий способ передачи данных обратного вызова

[DataContract] 
[KnownType(typeof(Type1))] 
[KnownType(typeof(Type2))] 
[KnownType(typeof(Type3))] 
public class Type 
{ 
    [DataMember] 
    private string id; 
    public string ID 
    { 
     get { return id; } 
     set { id= value; } 
    } 
} 
[DataContract] 
public class Type1: Type 
{ 
    private SchoolData school; 
    [DataMember] 
    public SchoolData School 
    { 
     get { return school; } 
     set { school= value; } 
    } 
} 
[DataContract] 
public class Type2: Type 
{ 
    private TecherData techer; 
    [DataMember] 
    public TecherData Techer 
    { 
     get { return techer; } 
     set { techer= value; } 
    } 
} 
[DataContract] 
public class Type3 : Type 
{ 
    private StudentData student; 
    [DataMember] 
    public StudentData Student 
    { 
     get { return student; } 
     set { student= value; } 
    } 
} 
public interface ICallback 
{ 
    [OperationContract(IsOneWay = true)] 
    void CallbackData(Type object) 
} 

Итак, я хочу отправить type1 type2, type3 по обобщенным образом в сторону клент, я хочу передать общие объекты, как у меня есть обширная коллекция объектов (класс Type1/Type2/Тип) . Thank you ~

ответ

0

На самом деле это не «контракт с данными», если я могу отправить любой тип через :-) Честно говоря, вы действительно пытаетесь воспроизвести Json здесь - отправка динамически сконструированных типов - это то, для чего он предназначен. Контракты данных предназначены для статически определенных типов, к которым вы можете проверить и прикрепить бизнес-правила.

+0

Большое спасибо, это полезно для меня. – Dota2Player