C# 一个WCF简单实例


以下是一个简单的WCF(Windows Communication Foundation)服务实例。这个例子将创建一个服务契约、实现该契约的服务,以及一个基本的配置文件。请注意,这个例子仅用于演示目的,实际应用中可能需要更详细的配置和错误处理。

### 1. 定义服务契约

首先,我们定义一个服务契约,它指定了服务将提供哪些操作。在Visual Studio中,你可以创建一个接口,并用`[ServiceContract]`属性标记它。


using System.ServiceModel;

namespace WcfSimpleExample
{
    [ServiceContract]
    public interface ICalculator
    {
        [OperationContract]
        double Add(double n1, double n2);

        [OperationContract]
        double Subtract(double n1, double n2);

        // 可以继续添加其他操作
    }
}

### 2. 实现服务

然后,实现这个接口。创建一个类,并使用`[ServiceBehavior]`属性来标记它,同时实现上面定义的接口。


using System.ServiceModel;

namespace WcfSimpleExample
{
    [ServiceBehavior]
    public class CalculatorService : ICalculator
    {
        public double Add(double n1, double n2)
        {
            return n1 + n2;
        }

        public double Subtract(double n1, double n2)
        {
            return n1 - n2;
        }

        // 实现其他操作
    }
}

### 3. 配置服务

WCF服务通常需要在Web.config(对于Web服务)或App.config(对于自托管服务)中配置。这里是一个基本的App.config配置示例,用于自托管服务。


<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <system.serviceModel>
    <services>
      <service name="WcfSimpleExample.CalculatorService">
        <endpoint address="" binding="basicHttpBinding" contract="WcfSimpleExample.ICalculator">
          <!-- 
          根据需要,可以配置其他绑定和地址。
          basicHttpBinding 是一种简单的绑定,适用于大多数基于HTTP的通信场景。
          -->
        </endpoint>
      </service>
    </services>
  </system.serviceModel>
</configuration>

### 4. 托管服务

最后,你需要托管这个服务。这可以通过多种方式完成,包括在IIS中托管(需要创建WCF服务库项目和WCF服务应用程序项目),或者通过自托管(在控制台应用程序中)。

这里是一个简单的自托管示例:


using System;
using System.ServiceModel;

namespace WcfSimpleExample
{
    class Program
    {
        static void Main(string[] args)
        {
            using (ServiceHost host = new ServiceHost(typeof(CalculatorService), new Uri("http://localhost:8000/CalculatorService")))
            {
                host.Open();
                Console.WriteLine("服务已启动。按任意键退出...");
                Console.ReadKey();
            }
        }
    }
}

在这个例子中,服务被托管在`http://localhost:8000/CalculatorService`地址上。你可以通过浏览器(虽然这通常不是WCF服务的访问方式,但对于测试基本HTTP绑定是可行的)或使用WCF客户端来访问它。

请注意,为了运行这个示例,你需要在Visual Studio中创建一个新的C#项目,并添加相应的类和配置。此外,你还需要确保你的开发环境已经安装了.NET Framework,因为WCF是基于.NET Framework的。