zoukankan      html  css  js  c++  java
  • WCF简单Demo

    WCF,光看书的原理,稍微有点枯燥,通过自己动手,会更容易理解契约声明,面向服务,分布式等概念。

    1.创建WCF服务。

    2.WcfService1.CS中声明新的契约。

    namespace WcfService1
    {
        // 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService1”。
        [ServiceContract]
        public interface IService1
        {


            [OperationContract]
            string GetData(int value);//声明契约




            [OperationContract]
            CompositeType GetDataUsingDataContract(CompositeType composite);


            // TODO: 在此添加您的服务操作
            [OperationContract]
            int GetSum(DateTime time);


            [OperationContract]
            string GetShopInfo(string address);


            [OperationContract(IsOneWay=true)]
            void onewaytest();

        }




        // 使用下面示例中说明的数据约定将复合类型添加到服务操作。
        [DataContract]
        public class CompositeType
        {
            bool boolValue = true;
            string stringValue = "Hello ";


            [DataMember]
            public bool BoolValue
            {
                get { return boolValue; }
                set { boolValue = value; }
            }


            [DataMember]
            public string StringValue
            {
                get { return stringValue; }
                set { stringValue = value; }
            }
        }


     
    }

    3.WcfService1.svc.cs中编写相应的方法

           public int GetSum(DateTime time)
            {
                int BreadNum = 10;
                int Milk = 5;
                int hotdog = 20;
                int today = BreadNum + Milk + hotdog;
                return today;


            }
            public string GetShopInfo(string address)
            {
                if (address == "武汉")
                {
                    return "武汉KFC";
                }
                else  if (address =="上海") 
                {
                    return "上海KFC";
             }
                else  if (address == "北京")
                {
                    return "北京KFC";
                }
                else
                {
                    return "没有该连锁店";
                }


            }


            public void onewaytest()
            {
                Console.WriteLine("hello world");
            }

    4.启动服务测试。


    5.新建winform窗体和webapplication来测试WCF的跨平台性。

    a.分别添加服务引用。

    b.编写代码测试

    winform

            private void dateTimePicker1_ValueChanged(object sender, EventArgs e)
            {
                using(
                WindowsFormsApplication1.ServiceReference1.Service1Client ser=new WindowsFormsApplication1.ServiceReference1.Service1Client()){

                    textBox1.Text = ser.GetSum(Convert.ToDateTime(dateTimePicker1.Text)).ToString();


                }
            }

    webapplication

      protected void Button1_Click(object sender, EventArgs e)
            {
                if (!string.IsNullOrEmpty(TextBox1.Text))
                {
                    using (WebApplication1.ServiceReference1.Service1Client ser = new WebApplication1.ServiceReference1.Service1Client())
                    {
                        TextBox2.Text = ser.GetShopInfo(TextBox1.Text);
                      
                    }
                }
                else
                {
                    TextBox2.Text = "无法检索,字符串为空";
                }
            }

    c.最后在解决方案中记得将这三个项目设置为多项目启动。


    d.反馈结果:



    总结:这是一个简单的demo演示,还有很多复杂的功能,只是通过这么一个简单的demo,确实能够让我们深化理解基础概念,为以后的学习打下基础。

  • 相关阅读:
    【皇甫】☀ 亮眼的颜色
    【皇甫】☀独一无二
    【皇甫】☀唯一
    【皇甫】☀一本好书 你值得浏览
    【皇甫】☀标题自己起 进来看像啥就是啥
    【皇甫】☀说说那些选择器
    【皇甫】☀标题被你吃了
    【皇甫】☀四套写入方案(仅供参考)
    【皇甫】☀内侧小解析---小行动(2)
    【皇甫】☀内侧小解析---小行动(1)
  • 原文地址:https://www.cnblogs.com/cache-yuan/p/9042342.html
Copyright © 2011-2022 走看看