wcf介绍

Windows Communication Foundation (WCF) 是一个用于构建服务和应用程序之间通信的框架。以下是WCF的一些主要优点:

1. 跨平台通信:WCF 支持不同平台和技术之间的通信,可以使用多种协议(如 HTTP、TCP、Named Pipes 等)和传输模式(如 SOAP、REST 等)。

2. 多协议支持:WCF 可以同时支持多个协议和传输方式,允许在不同的通信场景中使用最适合的协议。

3. 安全性:WCF 提供了丰富的安全特性,包括消息加密、签名、身份验证和授权等,可以确保通信的安全性。

4. 可扩展性:WCF 设计为高度可扩展,可以通过配置和扩展点来增加功能,例如自定义绑定、自定义行为和扩展传输协议等。

5. 一致的编程模型:WCF 提供了一个统一的编程模型,开发者可以使用相同的方式来编写、配置和部署不同类型的服务,而不必担心底层的通信细节。

6. 高性能:WCF 提供了多种优化手段和配置选项,能够在高负载环境中提供高性能的服务。

7. 事务支持:WCF 支持分布式事务管理,允许在多个服务操作之间保持一致性和可靠性。

8. 消息传递可靠性:WCF 支持可靠消息传递,确保消息在网络故障或其他问题时仍能正确传递和处理。

9. 丰富的工具支持:WCF 提供了丰富的开发工具和调试工具,例如 Visual Studio 中的 WCF Service Library 和 WCF Test Client,使得开发和测试更加方便。

这些优点使得 WCF 成为构建分布式应用程序和服务的强大工具,适用于企业级应用和复杂的服务集成场景。

1. 创建 WCF 服务

首先,我们需要创建一个WCF服务。以下是一个基本的WCF服务契约和实现。

 服务契约(IService.cs)

csharp
using System.ServiceModel;

[ServiceContract]
public interface IService
{
    [OperationContract]
    string GetData(int value);
}


 服务实现(Service.cs)

csharp
public class Service : IService
{
    public string GetData(int value)
    {
        return $"You entered: {value}";
    }
}


 配置文件(App.config)

xml
<configuration>
  <system.serviceModel>
    <services>
      <service name="WcfDemo.Service">
        <endpoint address="" binding="basicHttpBinding" contract="WcfDemo.IService" />
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8000/Service" />
          </baseAddresses>
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior>
          <serviceMetadata httpGetEnabled="True" />
          <serviceDebug includeExceptionDetailInFaults="False" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>


 主程序(Program.cs)

csharp
using System;
using System.ServiceModel;

namespace WcfDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            using (ServiceHost host = new ServiceHost(typeof(Service)))
            {
                host.Open();
                Console.WriteLine("Service is running...");
                Console.WriteLine("Press <Enter> to stop the service.");
                Console.ReadLine();
                host.Close();
            }
        }
    }
}


 2. 创建 WCF 客户端

接下来,我们需要创建一个WCF客户端来调用服务。

 添加服务引用

在客户端项目中,右键点击项目,选择“添加服务引用”,输入服务地址 http://localhost:8000/Service,然后点击“转到”。选择服务并点击“确定”完成服务引用的添加。

 客户端程序(Program.cs)

csharp
using System;
using WcfClient.ServiceReference1;

namespace WcfClient
{
    class Program
    {
        static void Main(string[] args)
        {
            ServiceClient client = new ServiceClient();

            int value = 123;
            string result = client.GetData(value);
            Console.WriteLine(result);

            client.Close();
        }
    }
}


 3. 运行

首先运行服务项目,启动WCF服务。然后运行客户端项目,客户端将调用服务并输出结果。

这样,一个简单的WCF服务和客户端示例就完成了。你可以根据需要扩展和修改这个示例以适应更复杂的场景。

  • 7
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值