繁体   English   中英

WCF服务是否公开属性?

[英]Do WCF Services Expose Properties?

在实现WCF服务所需的接口中,我使用[ServiceContract()]属性声明主类,并使用[OperationContract()]声明任何公开的方法。

我如何揭露公共财产? 谢谢

由于属性的获取部分是一种方法,这在技术上可行,但如前面的答案/评论中所述,这可能是不可取的; 只是为了一般知识在这里发布。

服务合同:

[ServiceContract]
public interface IService1
{
    string Name
    {
        [OperationContract]
        get;
    }
}

服务:

public class Service1 : IService1
{
    public string Name
    {
        get { return "Steve"; }
    }
}

要从您的客户端代码访问:

var client = new Service1Client();
var name = client.get_Name();

你不能。 这不是它的工作原理。 仅限方法。

您可以公开属性,但是您必须使用[DataContract]属性并且可以将属性声明为属性的[DataMember]属性。

属性是组件接口的面向对象方面。 WCF是关于服务的 ,您必须考虑并设计组件之间的交互顺序。

由于往返的成本,可能昂贵的状态管理和版本控制挑战,面向对象无法很好地扩展到分布式方案(您的代码在多个服务器上执行,甚至在多个进程中执行)。 但是,OO仍然是设计服务内部的好方法,特别是如果它们很复杂的话。

请不要将属性公开为Web方法..这在HTTPS中不起作用。 我有很大的时间来识别和解决这个问题。 最好的方法是编写一个在WCF中返回的具体方法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM