编程实现WCF服务

首先当然是编写契约啦,为了实现契约代码的复用,这里单独将契约写在一个类库里面Wcf.Contract

 1 using System;
 2 using System.ServiceModel;
 3
 4 namespace Wcf.Contract
 5 {
 6     [ServiceContract(Name="operation",Namespace="urlns://little.org")]
 7     public interface IOperation
 8     {
 9         Guid InstanceId{ get; }
10         [OperationContract]
11         int Add(int a,int b);
12         [OperationContract]
13         int Sub(int a,int b);
14         [OperationContract]
15         int Muti(int a,int b);
16         [OperationContract]
17         int Devide(int a,int b);
18     }
19 }

然后就是服务实现啦,将服务实现单独写在一个类库里面 新建一个类库项目Wcf.Service,并添加Wcf.Contract 引用

using System;
using Wcf.Contract;

namespace Wcf.Service
{
    public class Operation:IOperation
    {
        public Guid InstanceId
        {
            get
            {
                return Guid.NewGuid();
            }
        }

        public int Add(int a,int b)
        {
            return a + b;
        }

        public int Sub(int a,int b)
        {
            return a - b;
        }

        public int Muti(int a,int b)
        {
            return a * b;
        }

        public int Devide(int a,int b)
        {
            return a / b;
        }
    }
}

然后就是服务的承载了,我们新建一个Wcf.Host 的控制台项目,在控制台中承载服务

 1 using System;
 2 using System.ServiceModel;
 3 using Wcf.Service;
 4
 5 namespace Wcf.Host
 6 {
 7     class MainClass
 8     {
 9         public static void Main (string[] args)
10         {
11             Uri[] baseAddresses = new Uri[] {
12                 new Uri ("http://localhost:8081/operation", UriKind.Absolute)
13             };
14             ServiceHost host = new ServiceHost (typeof(Wcf.Service.Operation), baseAddresses);
15
16             host.AddServiceEndpoint ("Wcf.Contract.IOperation", new BasicHttpBinding (), "");
17             host.Opened += OnServiceHostOpened;
18             try
19             {
20                 host.Open();
21             }
22             catch(Exception ex) {
23                 //Console.BackgroundColor = ConsoleColor.Red;
24                 Console.WriteLine (ex.Message);
25                 //Console.ResetColor ();
26             }
27             Console.WriteLine ("press any key to exit...");
28             Console.ReadKey ();
29
30
31         }
32
33         public static void OnServiceHostOpened(object sender,EventArgs e)
34         {
35             Console.WriteLine ("ServiceHost has opened.");
36         }
37     }
38 }

这样就简单实现了一个Wcf服务,没有使用配置文件

时间: 2024-08-05 04:24:00

编程实现WCF服务的相关文章

WCF服务编程 读书笔记——第1章 WCF基础(1)

第1章 WCF基础 本章主要介绍WCF的基本概念.构建模块以及WCF体系架构,以指导读者构建一个简单的WCF服务.从本章的内容中,我们可以了解到WCF的基本术语,包括地址(Address).绑定(Binding).契约(Contract)和终结点(Endpoint):了解如何托管服务,如何编写客户端代码:了解WCF的相关主题,诸如进程内托管(In-Proc Hosting)以及可靠性的实现.即使你已经熟知WCF的基本概念,仍然建议你快速浏览本章的内容,它不仅能够巩固你的已有知识,而且本章介绍的一

wcf服务编程(二)

地址:      1.命名管道:用于同一台机器的跨进程通讯.URL表示方式为:net.pipe://  ;由于是在同一台机器的不同进程间通讯,所以不用定义端口号. wcf服务编程(二)

WCF分布式开发步步为赢(4):WCF服务可靠性传输配置与编程开发

今天继续WCF分布式开发步步为赢系列的第4节:WCF服务可靠性传输配置与编程开发.这个章节,我们要介绍什么是WCF服务的可靠性传输,随便介绍网络协议的概念,Web Service为什么不支持可靠性传出,具体的WCF绑定协议和可靠性的关系,实现可靠性传输有什么方式,以及配置和开发的详细实现代码分析部分.[1]可靠性传输[2]配置方式实现可靠性传输[3]编程方式实现可靠性传输[4]编程实现必备有序传递[5]结果分析和总结. 下面进入正式的内容: [1]可靠性传输: [1.0]网络协议基础知识: 这里

WCF服务编程 读书笔记——第1章 WCF基础(2)

续:第1章 WCF基础(1) 元数据交换 服务有两种方案可以发布自己的元数据.一种是基于HTTP-GET协议提供元数据, 另一种则是后面将要讨论的使用专门的终结点的方式.WCF能够为服务自动提供基于HTTPGET的元数据,但需要显式地添加服务行为( Behavior)以支持这一功能.本书后面的章节会介绍行为的相关知识.现在,我们只需要知道行为属于服务的本地特性,例如是否需要基于HTTP-GET交换元数据, 就是一种服务行为.我们可以通过编程方式或管理方式添加行为.在例 1 - 10 演示的宿主应

WCF服务编程 读书笔记——第2章 服务契约

操作重载诸如 C++ 和 C# 等编程语言都支持方法重载,即允许具有相同名称的两个方法可以定义不同的参数.例如,如下的 C# 接口就是有效的定义: interface ICalculator { int Add(int arg1,int arg2); double Add(double arg1,double arg2); } 然而,基于 WSDL 的操作却不支持操作重载.因此,在编译如下的契约定义时,装载服务宿主就会抛出 InvalidOperationException异常: // 无效的契

WCF分布式开发步步为赢(3)WCF服务元数据交换、配置及编程开发

今天我们继续WCF分布式开发步步为赢(3)WCF服务元数据交换.配置及编程开发的学习.经过前面两节的学习,我们了解WCF分布式开发的相关的基本的概念和自定义宿主托管服务的完整的开发和配置过程.今天我们来详细学习WCF服务元数据交换的相关内容.WCF服务元数据究竟是什么?为什么WCF服务要暴露元数据交换节点?这些和以前的Web Service有什么关系?WCF服务元数据交换的方式有那些?我们如何实现WCF服务元数据交换,本节我们会详细讲解.全文结构如下:[1]WCF服务元数据的基本概念.[2]WC

【转】《WCF服务编程 第一章 WCF基础》第一回

原文地址:http://www.cnblogs.com/PirateCaptain/articles/1960954.html 什么是WCF?WCF全名Windows Communication Foundation,中文叫Windows通信基础,MS的名字起的多么的朴实合适,是Windows平台下开发和部署服务的软件开发包.WCF为服务提供了运行时环境(多次看到运行时,这玩意究竟干了什么这么重要呢?),使得开发者能够以CLR类型的方式使用服务(CLR类型是什么呢?能干吗?这个问题得去.NET框

C#面向服务编程技术WCF从入门到实战演练

一.WCF课程介绍 1.1.Web Service会被WCF取代吗? 对于这个问题阿笨的回答是:两者在功能特性上却是有新旧之分,但是对于特定的系统,适合自己的就是最好的.不能哪一个技术框架和行业标准作比较,任何对于二者的比较都是错误的,因为两者根不不在同一个范畴里.就好比不能拿个汽车和交通法规比较一样,这是个误区. 阿笨的宗旨就是学完此<C#面向服务编程技术WCF从入门到实战演练>课程,让您从零基础上手后直接将学习的成果运用到实际项目中去.阿笨本次分享的WCF技术是完全来源于切身实际项目中,如

用jQuery的Ajax调用WCF服务编程心得

这两天在写基于WCF服务的后台框架,过程中遇到了一些挫折,经过努力全部解决了,在此分享给大家,使用的工具是Visual Studio 2013. 该后台需要支持通过json来传递和接收数据. 首先,说说搭建过程. 第一步:创建WCF服务应用程序项目WCF. 第二步,创建服务使用的数据类 using System; using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Sch