WCF简单Demo
WCF,光看书的原理,稍微有点枯燥,通过自己动手,会更容易理解契约声明,面向服务,分布式等概念。
1.创建WCF服务。
2.WcfService1.CS中声明新的契约。
namespace WcfService1
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
[ServiceContract]
public interface IService1
{
[OperationContract]
string GetData(int value);//声明契约
[OperationContract]
CompositeType GetDataUsingDataContract(CompositeType composite);
// TODO: 在此添加您的服务操作
[OperationContract]
int GetSum(DateTime time);
[OperationContract]
string GetShopInfo(string address);
[OperationContract(IsOneWay=true)]
void onewaytest();
}
// 使用下面示例中说明的数据约定将复合类型添加到服务操作。
[DataContract]
public class CompositeType
{
bool boolValue = true;
string stringValue = "Hello ";
[DataMember]
public bool BoolValue
{
get { return boolValue; }
set { boolValue = value; }
}
[DataMember]
public string StringValue
{
get { return stringValue; }
set { stringValue = value; }
}
}
}
3.WcfService1.svc.cs中编写相应的方法
public int GetSum(DateTime time)
{
int BreadNum = 10;
int Milk = 5;
int hotdog = 20;
int today = BreadNum + Milk + hotdog;
return today;
}
public string GetShopInfo(string address)
{
if (address == "武汉")
{
return "武汉KFC";
}
else if (address =="上海")
{
return "上海KFC";
}
else if (address == "北京")
{
return "北京KFC";
}
else
{
return "没有该连锁店";
}
}
public void onewaytest()
{
Console.WriteLine("hello world");
}
4.启动服务测试。
5.新建winform窗体和webapplication来测试WCF的跨平台性。
a.分别添加服务引用。
b.编写代码测试
winform
private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
{
using(
WindowsFormsApplication1.ServiceReference1.Service1Client ser=new WindowsFormsApplication1.ServiceReference1.Service1Client()){
textBox1.Text = ser.GetSum(Convert.ToDateTime(dateTimePicker1.Text)).ToString();
}
}
webapplication
protected void Button1_Click(object sender, EventArgs e)
{
if (!string.IsNullOrEmpty(TextBox1.Text))
{
using (WebApplication1.ServiceReference1.Service1Client ser = new WebApplication1.ServiceReference1.Service1Client())
{
TextBox2.Text = ser.GetShopInfo(TextBox1.Text);
}
}
else
{
TextBox2.Text = "无法检索,字符串为空";
}
}
c.最后在解决方案中记得将这三个项目设置为多项目启动。
d.反馈结果:
总结:这是一个简单的demo演示,还有很多复杂的功能,只是通过这么一个简单的demo,确实能够让我们深化理解基础概念,为以后的学习打下基础。
WCF简单Demo的更多相关文章
- 设计模式之单例模式的简单demo
/* * 设计模式之单例模式的简单demo */ class Single { /* * 创建一个本类对象. * 和get/set方法思想一样,类不能直接调用对象 * 所以用private限制权限 * ...
- Spring的简单demo
---------------------------------------- 开发一个Spring的简单Demo,具体的步骤如下: 1.构造一个maven项目 2.在maven项目的pom.xml ...
- 使用Spring缓存的简单Demo
使用Spring缓存的简单Demo 1. 首先创建Maven工程,在Pom中配置 <dependency> <groupId>org.springframework</g ...
- Managed DirectX中的DirectShow应用(简单Demo及源码)
阅读目录 介绍 准备工作 环境搭建 简单Demo 显示效果 其他 Demo下载 介绍 DirectX是Microsoft开发的基于Windows平台的一组API,它是为高速的实时动画渲染.交互式音乐和 ...
- angular实现了一个简单demo,angular-weibo-favorites
前面必须说一段 帮客户做了一个过渡期的项目,唯一的要求就是速度,我只是会点儿基础的php,于是就用tp帮客户做了这个项目.最近和客户架构沟通,后期想把项目重新做一下,就用现在最流行的技术,暂时想的使用 ...
- Solr配置与简单Demo[转]
Solr配置与简单Demo 简介: solr是基于Lucene Java搜索库的企业级全文搜索引擎,目前是apache的一个项目.它的官方网址在http://lucene.apache.org/sol ...
- 二维码简单Demo
二维码简单Demo 一.视图 @{ Layout = null; } <!DOCTYPE html> <html> <head> <meta name=&qu ...
- android JNI 简单demo(2)它JNI demo 写
android JNI 简单demo(2)它JNI demo 写 一.搭建Cygwin 环境:http://blog.csdn.net/androidolblog/article/details/25 ...
- Ext简单demo示例
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/stri ...
随机推荐
- Air722UG_模块硬件设计手册_V1.1
下载PDF版本: Air722UG_模块硬件设计手册_V1.1.pdf @ 目录 1. 绪论 2.综述 2.1 型号信息 2.2 主要性能 2.3 功能框图 3.应用接口 3.1 管脚描述 3.2 工 ...
- Redis:我是如何与客户端进行通信的
江湖上说,天下武功,无坚不摧,唯快不破,这句话简直是为我量身定制. 我是一个Redis服务,最引以为傲的就是我的速度,我的 QPS 能达到10万级别. 在我的手下有数不清的小弟,他们会时不时到我这来存 ...
- 管中窥豹-ssh链接过多的问题分析及复盘
缘起 某一天,产品侧同事联系过来,反馈话单传输程序报错,现象如下: 实际上,该节点仅提供了一个sftp服务,供产品侧传输话单过来进行临时存储,由计费部门取走而已. 分析 于是找运维同事上服务器看了下情 ...
- 使用Let’s Encrypt实现网站https化
使用 Let's Encrypt 证书和搭配 Nginx 实现网站 https 化. 一.SSL证书获取 由于 Let's Encrypy 申请的 SSL 证书只有三个月的有效期,为了实现自动续期,使 ...
- unity的安装,配置,及问题
下载unity 在官网下载unity unity有三个版本,个人版免费,pro和专业版收费. 个人版 在导出exe文件时不能去掉水印片头.其他版本可以. 地址[https://store.unity. ...
- Ansible自动化运维应用实战
实验环境 centos7.4 主机名称 IP 配置 用途 controlnode 172.16.1.120 1核/1G/60G ansible slavenode1 172.16.1.121 1核/1 ...
- AcWing 105. 七夕祭
七夕节因牛郎织女的传说而被扣上了「情人节」的帽子. 于是TYVJ今年举办了一次线下七夕祭. Vani同学今年成功邀请到了cl同学陪他来共度七夕,于是他们决定去TYVJ七夕祭游玩. TYVJ七夕祭和11 ...
- Docker安装MySQL8.0
环境 CentOS 7.5 Docker 1.13.1 MySQL 8.0.16 安装 拉取镜像 默认拉取最新版本的镜像 $ docker pull mysql 如果要指定版本,使用下面的命令 $ d ...
- Acunetix敏感的数据泄露–泄露如何发生
术语"敏感数据暴露"是指允许未授权方访问存储或传输的敏感信息,例如信用卡号或密码.全球范围内大多数重大安全漏洞都会导致某种敏感的数据泄露. Acunetix利用攻击漏洞(例如Web ...
- [zebra源码]分片语句ShardPreparedStatement执行过程
主要过程包括: 分库分表的路由定位 sql语句的 ast 抽象语法树的解析 通过自定义 SQLASTVisitor (MySQLSelectASTVisitor) 遍历sql ast,解析出逻辑表名 ...