调用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; }
}