2009-08-19 113 views
0

我正在使用VS 2005(C#)。我的web服务返回一个类型如下:如何访问ASMX Web服务客户端代理类型?

[WebMethod] 
public Employee getEmployee() 
{ 
    Employee emp=new Employee(); 
    emp.EmpID=1000; 
    emp.EmpName="Wallace";  

    return emp; 
} 

从客户端我创建了一个代理。

localhost.Service1 svc = new WindowsApplication1.localhost.Service1(); 

如何获取getEmployee()方法返回的Employee对象。

我需要在客户端创建一个Employee类吗?

....喜欢...

localhost.Service1 svc = new WindowsApplication1.localhost.Service1(); 
Employee emp = new Employee(); 
object obj= svc.getEmployee(); 
emp = (Employee)obj; 
MessageBox.Show("Id=:" + emp.EmpID.ToString() + "," + "Name:=" + emp.EmpName); 

这样还我收到铸造错误。

回答

0

所有你需要的是这样的:

using (localhost.Service1 svc = new WindowsApplication1.localhost.Service1()) 
{ 
    localhost.Employee emp = svc.getEmployee(); 
    MessageBox.Show("Id=:" + emp.EmpID.ToString() + "," + "Name:=" + emp.EmpName); 
} 
+0

是的,它的结果是我期望的。我是一个初学者,所以我还没有学到很多东西。 – user158977 2009-08-19 08:27:05

0

你为什么要在对象获取Employee对象,不能你得到这样的:

Localhost.Service1 svc = new WindowsApplication1.localhost.Service1(); 
**Employee employee= svc.getEmployee();** 
MessageBox.Show("Id=:" + employee.EmpID.ToString() + "," + "Name:=" + employee.EmpName); 
+0

为什么要创建'emp'? – 2009-08-19 08:20:20

+0

我同意,emp根本不需要,对不起,我复制了他的代码。 – Bhaskar 2009-08-19 08:25:13