JuvalLöwy的"编程WCF服务"一书包含一个"WCF编码标准"附录,其中附有WCF服务的一般设计指南.
其中一个指导原则是避免类似属性的操作:
//Avoid property-like operations:
[ServiceContract]
interface IMyContract
{
   [OperationContract]
   string GetName();
   [OperationContract]
   void SetName(string name);
 }
有人可以解释一下string GetName();手术有什么问题吗?如果字符串值是我需要的一个操作怎么办?
如果你需要一个字符串值,你将不再需要任何东西,那么它绝对是正确的.可能反模式的更好例子是:
[ServiceContract]
interface IMyContract
{
   [OperationContract]
   void SetFirstName(string firstName);
   [OperationContract]
   void SetLastName(string lastName);
}
和客户打电话:
proxy.SetFirstName("Test");
proxy.SetLastName("Test");
这是完全错误的.您应该有单个操作接受名字和姓氏.
通常,您应该避免繁琐的接口并减少服务和客户端之间的往返次数.因此,如果您知道只需要名称,则只公开返回名称的操作.但是,如果您知道您将在同一客户的业务运营中,还需要通过电子邮件公开将返回姓名和电子邮件的操作.
| 归档时间: | 
 | 
| 查看次数: | 141 次 | 
| 最近记录: |