WCF简单实例(VS2010自动生成)--服务端

来源:互联网 发布:c语言面向对象编程 pdf 编辑:程序博客网 时间:2024/06/05 03:37

1、添加WCF服务文件



2、定义服务的接口

    [ServiceContract]
    public interface IService1
    {


        [OperationContract]
        string GetData(int value);


        [OperationContract]
        CompositeType GetDataUsingDataContract(CompositeType composite);


        [OperationContract]
        double Add(double n1, double n2);
        [OperationContract]
        double Subtract(double n1, double n2);
        [OperationContract]
        double Multiply(double n1, double n2);
        [OperationContract]
        double Divide(double n1, double n2);
        // TODO: 在此添加您的服务操作
    }


3、定义数据契约

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




    }


4、实现

  public class Service1 : IService1
    {
        public string GetData(int value)
        {
            return string.Format("You entered: {0}", value);
        }


        public CompositeType GetDataUsingDataContract(CompositeType composite)
        {
            if (composite == null)
            {
                throw new ArgumentNullException("composite");
            }
            if (composite.BoolValue)
            {
                composite.StringValue += "Suffix";
            }
            return composite;
        }


        public double Add(double n1, double n2)
        {
            double result = n1 + n2;
            return result;
        }


        public double Subtract(double n1, double n2)
        {
            double result = n1 - n2;
            return result;
        }


        public double Multiply(double n1, double n2)
        {
            double result = n1 * n2;
            return result;
        }


        public double Divide(double n1, double n2)
        {
            double result = n1 / n2;
            return result;
        }
    }