У меня есть несколько классов объектов, которые используют наследование. Кажется, что я могу получить доступ только к объектам, которые непосредственно используются службой. Позвольте мне показать вам, чего я пытаюсь достичь:
[DataContract]
public class Object1
{
[DataMember]
int Id {get; set;}
}
[DataContract]
public class object2: Object1
{
[DataMember]
string Name {get; set;}
}
[DataContract]
public class object3
{
[DataMember]
int SomeNumber {get; set;}
}
Служба:
public int GetId(object2 obj)
{
return GetTheId(object2.Name);
}
Теперь, когда я использую object2 в сервисе, object1 тоже сериализуется. Однако, я могу хотеть выставить объект 3 по какой-то причине. Это может быть производный класс, который я должен передать, чтобы его тип мог быть определен позже для другого процесса. Я не вижу, чтобы этот объект был сериализован. Я предполагал, что всякий раз, когда вы устанавливаете DataContract / DataMember, эти объекты будут сериализованы. Имеет смысл не показывать то, что не используется, потому что я вижу проблему с раскрытием предметов, которые вам могут не понадобиться. Каков наилучший способ выставить объекты, которые не используются сервисом напрямую? Спасибо
Daniel