我有一些使用继承的对象类。似乎我只能访问服务直接使用的对象。让我向您展示我要完成的工作:
[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 也被序列化了。但是,出于某种原因,我可能希望公开 object3。它可能是我必须传递的派生类,以便稍后可以为另一个进程确定其类型。我没有看到这个对象被序列化。我假设每当您设置 DataContract / DataMember 时,这些对象都会被序列化。不暴露未开始使用的东西确实有意义,因为我可以看到暴露您可能不需要的项目的问题。公开服务不直接使用的对象的最佳方法是什么?谢谢
丹尼尔