【发布时间】:2015-06-05 13:30:44
【问题描述】:
在使用 WCF 时,我遇到了一个奇怪的问题。
让我们说,
我有一个学生班
public class Student
{
[DataMember]
public int32 ID { get; set; }
[DataMember]
public DateTime? CreatedDate { get; set; }
[DataMember]
public Gender Gender { get; set; }
[DataMember]
public string Name { get; set; }
}
[OperationContract]
Student GetStudentDetail (StudentRequest request);
[OperationContract]
Student GetStudent (StudentDetailRequest request);
我正在从wcf 以Student 复杂类型的形式返回一个响应,其方法名称为GetStudent(),它工作正常。但在另一个场景中,我还有一个名为 GetStudentDetail() 的网络方法,我想在其中从 Student 类返回更多数据成员,例如:
[DataMember]
public int32 Age{ get; set; }
[DataMember]
public string Location { get; set; }
如果我在Student 类中添加新的Datamember,它会自动显示我不想要的GetStudent() 方法的架构。实际上我不想将架构中的新字段返回给@987654330 @ 方法。所以问题就在这里:我只想为GetStudentDetail() 方法公开Student 类的新数据成员。
我怎样才能做到这一点?
【问题讨论】:
-
引入DetailedStudent类并从Student继承呢?
-
不,我不想上DetailedStudent课;只是希望为具有不同数据成员的两种 Web 方法只返回学生类。有什么逻辑吗?
-
这应该如何在客户端表示?作为两个不同的班级?
-
它不会自动显示。您的两种方法都返回相同的
student类型。除非您想创建两种不同的类型,否则您会问一些不可能的事情。 -
嘿,伙计们,不要说不可能,至少在 IT 方面:) ..它们是方法..我正在尝试..希望如果您理解这个问题可以提供帮助。
标签: wcf xml-serialization datacontract