• 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; }
    }

  • 相关阅读:
    四叉树编码存储的实现
    窗体之间传递值的几种方法
    常见的六种排序算法实现
    OracleHelper类
    c#动态加载dll文件
    STL学习系列九:Map和multimap容器
    STL学习系列八:Set和multiset容器
    STL学习系列七:优先级队列priority_queue容器
    STL学习系列六:List容器
    STL学习系列五:Queue容器
  • 原文地址:https://www.cnblogs.com/linbin524/p/4767516.html
Copyright © 2020-2023  润新知