我现在想把以前的Web项目数据操作模块全部改成webservice,但是遇到这么一个问题:以前我把数据库中的表都映射到一个实体类,譬如数据库里面有一个表User,则对应成实体类User.cs,其中原来项目中数据操作层中有一个方法,public User GetUser(){...;return user;}现在我在webservice项目里也添加了跟原来项目一样的实体类,然后在webservice里的方法里返回User,但是在Web项目里如何使用这个从webservice项目里返回的User类?其中Web项目跟Webservice项目都有这个User类,是完全一样的,但是为什么却不能转化啊?谢谢

解决方案 »

  1.   

    楼上的可以说明白点吗?WebService项目:
    [WebMethod]
    public User GetUserService()
    {
    ...
    }Web项目:
    public User GetUser()
    {
          //调用webservice,返回webservice项目中的方法GetUserService()返回,webservice中的User对象
           
           //请问这里webservice中的User对象如何转换为Web项目中的User类(这两个类的结构是一样的)    
    }
      

  2.   

    建议先写一个接口UserBase然后在在webservice里的User类中实现UserBase接口,同时亦在Web项目中的User类中实现UserBase接口,之后:
    Web项目: 
    public User GetUser() 

          //调用webservice,返回webservice项目中的方法GetUserService()返回,webservice中的User对象 
                 //在此传换....OK..完成.
          //请问这里webservice中的User对象如何转换为Web项目中的User类(这两个类的结构是一样的)    
    }
      

  3.   

    进一步补充..建议先写一个接口BaseUser 
    //如:
    public interface BaseUser
    {
    string UserName
            {
                get;
            }
    }
    然后在在webservice里的User类中实现BaseUser接口(同时亦在Web项目中的User类中实现BaseUser接口>>>可以不用在Web项目中实现BaseUser接口,若要用到User对像,直接用接口定义一个BaseUser对像出来,但必须通过webservice里的User来实例对像)//如:
    public class User : BaseUser
    {        string m_username = "";
            public string UserName
            {
                get { return m_username; }
                set { m_username = value; }
            }
    }之后: 
    Web项目: 
    public BaseUser GetUser() 

          //调用webservice,返回webservice项目中的方法GetUserService()返回,webservice中的User对象 
                //在此传换....OK..完成. 
          BaseUser BaseUser_=webservice.GetUserService();//此处的webservice.GetUserService()就是你在调用webservice,返回webservice项目中的方法GetUserService()返回,webservice中的User对象
         return BaseUser_;
    }