日期:2014-05-18 浏览次数:21150 次
//服务的接口
[ServiceContract]
    public interface IWcfService
    { 
        //test
        [OperationContract]
        string GetData();
        [OperationContract]
        void Ret(out string str, out string str2);
        //上面两个函数都能正常调用,但下面需要返回ErrInfo 的自定义对象,就不知道怎么操作了,
        [OperationContract]
        DataTable GetDataTable(string strSql, out ErrInfo errInfo);
        [OperationContract]
        ErrInfo  GetDataTable();       
    }
 // 使用下面示例中说明的数据约定将复合类型添加到服务操作。
    [DataContract]
    public class ErrInfo
    {
        private short SignErr;
        private string StrErr;
        public ErrInfo(short signErr, string strErr)
        {
            SignErr = signErr;
            StrErr = strErr;
        }        
        [DataMember]
        public short signErr
        {
            get
            {
                return SignErr;
            }
            set
            {
                SignErr = value;
            }
        }
        [DataMember]
        public string strErr
        {
            get
            {
                return StrErr;
            }
            set
            {
                StrErr = value;
            }
        }
//函数的实现我就不贴了,没得问题,下面是客服端的接口
[ServiceContract]
    public interface IWcfService
    {
        //[OperationContract]
        //string GetData();
        [OperationContract]
        string GetDataB();
        [OperationContract]
        void Ret(out string str,out string str2); 
        //这里我不知道怎么写返回对象函数的接口  
    }
 private void btnA_Click(object sender, EventArgs e)
        {
            string str, str2;
            server.Ret(out str, out str2);//所以也没办法调用,希望高手指点
            MessageBox.Show(str2);
        }