zoukankan      html  css  js  c++  java
  • WCF 小程序案例以及序列化的使用

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Runtime.Serialization;
    using System.ServiceModel;
    using System.ServiceModel.Channels;
    using System.Text;
    using System.Threading.Tasks;

    namespace ConsoleTest
    {
    class Program
    {
    static void Main(string[] args)
    {
    //发布服务端的主机服务
    string url = "http://localhost:8080";
    ServiceHost sh = new ServiceHost(typeof(MyService));
    Binding bind = new BasicHttpBinding();
    sh.AddServiceEndpoint(typeof(IService), bind, url);
    sh.Open();

    //客户端发送消息,使用服务端的服务
    ChannelFactory<IService> cf = new ChannelFactory<IService>(bind);
    EndpointAddress ea = new EndpointAddress(url);
    IService iservice = cf.CreateChannel(ea);
    Student ss = iservice.GetStudent();
    Console.WriteLine(ss.StuID);
    Console.WriteLine(ss.Name);
    Console.WriteLine(ss.Age);
    Console.Read();
    }
    }

    /// <summary>
    /// 定义服务的协定接口
    /// </summary>
    [ServiceContract]
    public interface IService
    {
    [OperationContract]
    Student GetStudent();
    }

    /// <summary>
    /// 实现服务接口
    /// </summary>
    public class MyService : IService
    {
    public Student GetStudent()
    {
    Student s = new Student();
    s.StuID = 123456;
    s.Name = "哈哈哈哈";
    s.Age = 20;
    return s;
    }
    }

    /// <summary>
    /// 序列化
    /// </summary>
    [DataContract]
    public class Student
    {
    private long stuID;
    [DataMember]
    public long StuID
    {
    get { return stuID; }
    set { stuID = value; }
    }

    private string name;
    [DataMember]
    public string Name
    {
    get { return name; }
    set { name = value; }
    }

    private int age;
    [DataMember]
    public int Age
    {
    get { return age; }
    set { age = value; }
    }

    /// <summary>
    /// 反序列化时,执行此方法
    /// </summary>
    /// <param name="ss"></param>
    [OnSerializing]
    public void hhha(StreamingContext ss)
    {
    this.Age = this.Age == 20 ? 50 : 88;
    }

    }


    }

  • 相关阅读:
    java内部类与其他类变量之间的调用方式
    java线程数设置和系统cpu的关系
    IDEA设置方法自动显示参数提示
    (十)学生课程表查询
    (九)协处理器
    (八)filter的使用
    (七)多线程写入数据
    (六)mapreduce和Hbase集成
    (五)阅读推荐
    (四)region代码实现
  • 原文地址:https://www.cnblogs.com/1175429393wljblog/p/6637151.html
Copyright © 2011-2022 走看看