了解WCF客户端到服务器(Understanding WCF Client to Server)

2019-11-01 07:37发布

我有充分把握的Windows Communication Foundation的特定功能的困难。 我读过本书后教程后教程,书籍。 所以整个概念性我感到自信。

除了一部分; 这是几乎像魔术的一部分。 这实际上提出了学习稍有困难。

我将在Web上使用最常见的例子。

我会与开始DataContract

[DataContract]
public class Customer
{

    // Declerations:
    private Guid id;
    private string firstName;
    private string lastName;
    private string emailAddress;

    [DataMembers]
    public Guid Id
    {
       get { return id; }
       set { id = value; }
    }

    [DataMember]
    public string FirstName
    {
         get { return firstName; }
         set { firstName = value; }
    }

    [DataMember]
    public string LastName
    {
         get { return lastName; }
         set { lastName = value; }
    }

    [DataMember]
    public string EmailAddress
    {
         get { return emailAddress; }
         set { emailAddress = value; }
    }

}

现在,我已经创建了一个对象; 我想接触到我的客户。

所以,我再创建我ServiceContract

[ServiceContract]
public interface ICustomer
{

     [OperationContract]
     Customer AddCustomer(Customer info);

}

所以这个地方我一直迷惑自己; 比方说你有一个客户端应用程序。 你消费的服务。 你必须在一个单独的装配/名称空间三个文本框。 客户提出的标准:

  • 名字
  • 电子邮件地址

如果设置这些文本框的日期; 他们将在元数据转移过来。 但是在服务器上; 我怎样才能将这些信息变量呢? 难道我刚才提到了private Guid and private string variables

我看到如何将它添加到数据库的教程; 但我不完全理解什么是WCF实际上做。 这是类似想什么我。 我想获得客户端接口输入,并将其写入到数据库和一个单独的日志文件。

我可以按照教程; 但我想知道如何在客户对象数据和它的变量正在组装的服务器上使用。

任何援助将是惊人的,一些澄清。

很抱歉,如果我的问题是愚蠢的; 我并不想开始辩论。 只是想了解如何把这些变量和使用它们的服务器上。

提前致谢。 如果我没有正确格式化问题,请让我知道。 我真的很想知道它是什么概念做。

更新:我的真实意图是要了解客户接口引用该对象; 所以调用时服务器有一个有效的对象,不为null。

在文本框中的客户端类型--->代理发送--->解串--->服务 - >连载--->使可使用属性。

Answer 1:

实际的类型 ,如您的Customer类是不是真的跨线传输。 然而,这些类型中的公共信息是通过一个叫做序列化过程中跨发送。 序列化允许一个类型的方式,允许其在网络上被发送来表示。 这是使用的格式,如SOAP,JSON或XML往往表现。 WCF甚至可以让你控制的对象究竟是如何被序列化,让你,如果你想编写自己的格式。 基本上,当AddCustomer被调用时,WCF被构建Customer对象的服务器上,其序列,并通过线路发送这些比特。

现在,在客户端上你将有一个匹配Customer称为代理对象。 它看起来是这样的:

public class Customer
{
    public Guid Id { get; set; }
    public string FirstName { get; set; }
    public string LastName { get; set; }
    public string EmailAddress { get; set; }
}

基本上,按比例缩小的版本与刚刚的服务器版本中的数据成员,没有代码或逻辑。 在客户端,的序列化表示Customer被反序列化回到这个本地代理类,它可用于各种客户端的目的,包括束缚于本地UI元素的一个实例。

Web服务可以公开使用这种类型的信息WSDL (这是描述Web服务合同中的XML格式)。 Visual Studio中(使用Wsdl.exe工具)可以自动写入这些代理类适合你,这让一切都只是工作神奇。



Answer 2:

我不知道,但可能这是你在找什么数据传输和序列化

特别是你可以检查的DataContractSerializer

您可以检查此文章太: 序列化在Windows通信基础



文章来源: Understanding WCF Client to Server
标签: c# wcf service