调用wcf

public ActionResult Index()
{
ViewBag.Message = "修改此模板以快速启动你的 ASP.NET MVC 应用程序。";

WCFTestClient wcf=new WCFTestClient();//这里在实际中替换成对应的部署对象

ViewBag.data = wcf.DoWork("某某用户");

string info= wcf.JsonData("生物","男",10000);
JavaScriptSerializer js = new JavaScriptSerializer();

List<UserModel> userList = new List<UserModel>();

///序列化或者加密处理
UserModel user=new UserModel();
userList = js.Deserialize<List<UserModel>>(info);

userList.Add(user);
return View();
}

wcf模块

1、接口

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;

namespace MvcClient
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IWCFTest”。
[ServiceContract]
public interface IWCFTest
{
[OperationContract]
string DoWork( string User);

[OperationContract]
string JsonData(string user,string sex,int age);
}
}

2、具体代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.Remoting.Contexts;
using System.Runtime.Serialization;
using System.ServiceModel;
using System.Text;
using System.Web.Script.Serialization;
using System.Runtime.Serialization.Json;

namespace MvcClient
{
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码、svc 和配置文件中的类名“WCFTest”。
// 注意: 为了启动 WCF 测试客户端以测试此服务,请在解决方案资源管理器中选择 WCFTest.svc 或 WCFTest.svc.cs,然后开始调试。
public class WCFTest : IWCFTest
{

public string DoWork(string User)
{
DateTime startTime = DateTime.Now;
string Data = string.Format("你好,{0}。欢迎使用wcf访问!", User);

string ShowInfo=string.Format("开始时间:{0},{1},结束时间:{2}!",startTime,Data,DateTime.Now);

return ShowInfo;

}

public string JsonData(string user, string sex, int age)
{
JavaScriptSerializer js = new JavaScriptSerializer();
// using System.Runtime.Serialization.Json.JsonReaderWriterFactory
// 生成json
//JavaScriptSerializer只能生成一个对象
List<UserModel> userList = new List<UserModel>();

for (int k = 0; k <= 10; k++) {
UserModel userModel = new UserModel();
userModel.user = user+k;
userModel.sex = sex + k;
userModel.age = age+ k;
List<string> tempList = new List<string>();
for (int j = 0; j <=2;j++ ){

tempList.Add(user+j);

}

userModel.temp = tempList;
userList.Add(userModel);

}

string str = js.Serialize(userList);
// js.Serialize(userList).ToString()生成返回的会报错的,但是上述赋值却可以
return str;
}

}
}

对应的model

public class UserModel
{
public string user { get; set; }
public string sex { get; set; }
public int age { get; set; }
public List<string> temp { get; set; }
}

WCF 生产json对外的接口的更多相关文章

  1. 使用WCF对外提供接口

    本篇将通过WCF以webservices的方式对外提供接口.同时使用NUnit对webservices中的方法进行单元测试. 开发契约 contract Contract项目为类库项目,该项目下会包含 ...

  2. 开发FTP服务接口,对外提供接口服务

    注意:本文只适合小文本文件的上传下载,因为post请求是有大小限制的.默认大小是2m,虽然具体数值可以调节,但不适合做大文件的传输 最近公司有这么个需求:以后所有的项目开发中需要使用ftp服务器的地方 ...

  3. springboot+CXF开发webservice对外提供接口(转)

    文章来源:http://www.leftso.com/blog/144.html 1.项目要对外提供接口,用webservcie的方式实现 2.添加的jar包 maven: <dependenc ...

  4. WCF Ajax Json的应用

    WCF Ajax 的应用网上实际上有很多, 如: Ajax与Wcf交互-JSON jQuery调用WCF服务传递JSON对象 WCF以Json格式返回对象,客户端以JS调用显示 关于SoapUI的介绍 ...

  5. C++中模块(Dll)对外暴露接口的方式

    总结下C++中模块(Dll)对外暴露接口的方式: (1)导出API函数的方式这种方式是Windows中调用DLL接口的最基本方式,GDI32.dll, User32.dll都是用这种方式对外暴露系统A ...

  6. Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问

    Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问 1.使用场景: 需求1.家中服务器 ubuntu 主机,跑接口服务,需要对外暴漏, 需求2.同时需要在外网ssh远程 ​ 关键词: frp内网 ...

  7. WPF内嵌WCF服务对外提供接口

    要测试本帖子代码请记得管理员权限运行vs. 我写这个帖子的初衷是在我做surface小车的时候有类似的需求,感觉这个功能还挺有意思的,所以就分享给大家,网上有很多关于wcf的文章 我就不一一列举了.公 ...

  8. Java服务器对外提供接口以及Android端向服务器请求数据

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5056780.html 讲解下java服务器是如何对移动终端提供接口的,以什么数据格式提供出去,移动端又是怎么 ...

  9. JSON API免费接口

    来自:http://www.bejson.com/knownjson/webInterface/ 电商接口 京东获取单个商品价格接口: http://p.3.cn/prices/mgets?skuId ...

随机推荐

  1. Nodejs 集成到IIS

    http://www.hanselman.com/blog/WebMatrixAndNodejsTheEasiestWayToGetStartedWithNodeOnWindows.aspx http ...

  2. rest开发

    http://www.mkyong.com/webservices/jax-rs/download-json-from-jax-rs-with-jaxb-resteasy/ http://blog.j ...

  3. hOAuth2.0认证和授权原理

    原文地址: http://www.6zou.net/tech/what_is_oauth.html http://www.phpddt.com/%E4%BA%8C%E6%AC%A1%E5%BC%80% ...

  4. 《Effective C++》条款26 防卫潜伏的ambiguity模棱两可的状态

    每个人都有思想.有些人相信自由经济学,有些人相信来生.有些人甚至相信COBOL是一种真正的程序设计语言.C++也有一种思想:它认为潜在的二义性不是一种错误.ambiguity 这是潜在二义性的一个例子 ...

  5. 对于利用pca 和 cca 进行fmri激活区识别的理解

    1.pca 抛开fmri研究这个范畴,我们有一个超长向量,这个超长向量在fmri研究中,就是体素数据.向量中的每个数值,都代表在相应坐标轴下的坐标值.这些坐标轴所组成的坐标系,其实是标准单位坐标系.向 ...

  6. Python异常处理实例

    #coding=utf-8 #---异常处理--- # 写一个自己定义的异常类 class MyInputException(Exception): def __init__(self, length ...

  7. Unity3d shader之卡通着色Toon Shading

    卡通着色的目的是为了让被着色物体显得过渡的不那么好,明暗交界线很明显,等等卡通风格的一系列特征, 也叫Non-photorealisticrendering非真实渲染 重点要做到两点: 1.    描 ...

  8. this用法

    this是js的一个关键字,随着函数使用场合不同,this的值会发生变化.但是总有一个原则,那就是this指的是调用函数的那个对象. 1.纯粹函数调用. function test() { this. ...

  9. ethtool的基本设置

    ethtool是设置网卡属性.IP/TCP相关协议属性的基本工具,功能还是很强大的.ubuntu的版本里没有默认集成,使用apt-get install 安装之.... 使用概要:ethtool et ...

  10. LaTeX中参考文献管理以及注意事项

    注意:版权所有,转载请注明出处 使用LaTeX写作,很重要的一个部分就是参考文献的制作,LaTeX使用bibtex管理文章的参考文献,bibtex即是一种工具,又是一种格式的代表,它要求使用*.bib ...