在我的界面中,我将有很多功能.所有这些都将绑定为OperationContract.
有没有办法避免在这些函数中的每一个上键入[OperationContract]?
[ServiceContract]
public interface IStudentService
{
[OperationContract]
String GetStudentFullName (int studentId);
[OperationContract]
StudentInformation GetStudentInfo (int studentId);
... about 20 more
}
Run Code Online (Sandbox Code Playgroud)
您应该避免使用包含大量(如20个或更多)操作合同的服务合同.
首先,您可以做的是更改您的服务所基于的模式.而不是作为操作的结果发布和返回单个数据值,而是使用DTO(或STE,如果这适用于您)并对对象图进行操作:
[OperationContract]
StudentDTO GetStudent(int studentId);
[OperationContract]
StudentDTO UpdateStudent(CreateStudentDTO student);
[OperationContract]
StudentDTO UpdateStudent(UpdateStudentDTO student);
[DataContract]
public class StudentDTO
{
public int Id { get; set; }
public string Name { get; set; }
public StudentInformationDTO StudentInformation { get; set; }
// other student's data here
}
Run Code Online (Sandbox Code Playgroud)
第二件事 - 将这些合同分解成小合同(记住单一责任原则).你不应该做合同,这是世界各地的责任.
| 归档时间: |
|
| 查看次数: |
153 次 |
| 最近记录: |