WCF 生产json对外的接口
调用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对外的接口的更多相关文章
- 使用WCF对外提供接口
本篇将通过WCF以webservices的方式对外提供接口.同时使用NUnit对webservices中的方法进行单元测试. 开发契约 contract Contract项目为类库项目,该项目下会包含 ...
- 开发FTP服务接口,对外提供接口服务
注意:本文只适合小文本文件的上传下载,因为post请求是有大小限制的.默认大小是2m,虽然具体数值可以调节,但不适合做大文件的传输 最近公司有这么个需求:以后所有的项目开发中需要使用ftp服务器的地方 ...
- springboot+CXF开发webservice对外提供接口(转)
文章来源:http://www.leftso.com/blog/144.html 1.项目要对外提供接口,用webservcie的方式实现 2.添加的jar包 maven: <dependenc ...
- WCF Ajax Json的应用
WCF Ajax 的应用网上实际上有很多, 如: Ajax与Wcf交互-JSON jQuery调用WCF服务传递JSON对象 WCF以Json格式返回对象,客户端以JS调用显示 关于SoapUI的介绍 ...
- C++中模块(Dll)对外暴露接口的方式
总结下C++中模块(Dll)对外暴露接口的方式: (1)导出API函数的方式这种方式是Windows中调用DLL接口的最基本方式,GDI32.dll, User32.dll都是用这种方式对外暴露系统A ...
- Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问
Frp内网穿透搭建,家庭主机对外提供接口,支持ssh访问 1.使用场景: 需求1.家中服务器 ubuntu 主机,跑接口服务,需要对外暴漏, 需求2.同时需要在外网ssh远程 关键词: frp内网 ...
- WPF内嵌WCF服务对外提供接口
要测试本帖子代码请记得管理员权限运行vs. 我写这个帖子的初衷是在我做surface小车的时候有类似的需求,感觉这个功能还挺有意思的,所以就分享给大家,网上有很多关于wcf的文章 我就不一一列举了.公 ...
- Java服务器对外提供接口以及Android端向服务器请求数据
转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/5056780.html 讲解下java服务器是如何对移动终端提供接口的,以什么数据格式提供出去,移动端又是怎么 ...
- JSON API免费接口
来自:http://www.bejson.com/knownjson/webInterface/ 电商接口 京东获取单个商品价格接口: http://p.3.cn/prices/mgets?skuId ...
随机推荐
- 小测几种python web server的性能
http://blog.csdn.net/raptor/article/details/8038476 因为换了nginx就不再使用mod_wsgi来跑web.py应用了,现在用的是gevent-ws ...
- QiQi and Symmerty
http://sdu.acmclub.com/index.php?app=problem_title&id=961&problem_id=23772 题意:给出一个01串,问有多少个子 ...
- 运行时改变控件的大小(点击后立刻ReleaseCapture,然后计算位移,最后发消息改变位置)——最有趣的是TPanel其实也有窗口标题,因此可发HTCAPTION消息
//光标在控件不同位置时的样式 // 由于拐角这点手动精确实在困难 所以用范围 范围+3 这样很容易就找到这一点了 procedure CtrlMouseMove(Ctrl: TWinControl; ...
- WPF Image控件中的ImageSource与Bitmap的互相转换
原文:WPF Image控件中的ImageSource与Bitmap的互相转换 1.从bitmap转换成ImageSource [DllImport("gdi32.dll", ...
- 可恶的0x1A
很少用fread读文件,今天用fread读一个文件死活缺一点,折腾半天才发现原来遇到0x1a. 0x1a 是 Ctrl+Z ,是模拟文件结束的符号,就是文件遇到0x1a后,认为文件已经结束. 哎!记下
- (转载)浅谈javascript的分号
(转载)http://www.blueidea.com/tech/web/2009/7261.asp javascript的分号代表语句的结束符,但由于javascript具有分号自动插入规则,所以它 ...
- mac下的改装人生——mbp拆卸的各种资源整理
这几天弄了好多的mac上硬件的问题,我自己的mac也被我拆了3次,感觉自己终于跟硬件扯上关系了哈. 在这里放一些我找到比较好的资源教程,供大家学习,如果我以后还需要继续拆我的macbook,我也会回来 ...
- ACM1230_火星A+B(进位的运算)
//只要看懂火星A+B的进位关系就好了 #include<stdio.h> ]={,,,,,,,,,,,,,,,,,,,,,,,,,}; int main() { ],b[],sum[]; ...
- UVa 11825 集合dp
#include <cstdio> #include <cstring> #include <iostream> #include <cmath> #i ...
- Redis教程01——命令
APPEND key value追加一个值到key上 AUTH password验证服务器 BGREWRITEAOF 异步重写追加文件 BGSAVE 异步保存数据集到磁盘上 BITCOUNT key ...