当你创建一个web服务 时,你返回的数据类型有哪些呢?也许你猜到了.net为我们提供的基础类型,但如果我们想返回一个CLASS对象呢,在Silverlight客户端如何正确处理这个类呢?不错,肯定有解决的办法,我们在服务中创建新数据类型时需要遵循一下几个原则
(1)你的新Class一定要表明DataContract属性;
(2)你的Class一定要标明Public标志;
(3)每一个属性必须标明DataMember,标明是可序列化;
(4)你的Class需要有一个零参数的构造函数;
下面我们看一个示例代码:
[DataContract]
public class Customer
{
private string firstName;
private string lastName;
public Customer()
{
}
[DataMember]
public string FirstName
{
get { return firstName; }
set { firstName = value; }
}
[DataMember]
public string LastName
{
get { return lastName; }
set { lastName = value; }
}
}
现在我们在服务中使用它
[OperationContract]
public Customer GetCustomer(int customerID)
{
Customer newCustomer = new Customer();
if (customerID == 1)
{
newCustomer.FirstName = "diz";
newCustomer.LastName = "song";
return newCustomer;
}
else
{
newCustomer.FirstName = "admin";
newCustomer.LastName = "song";
return newCustomer;
}
}
OK,现在我们在Silverlight客户端中使用它,更新服务引用后(右键服务引用,你就可以看到),看下面的代码:
proxy.GetCustomerCompleted += new EventHandler<GetCustomerCompletedEventArgs>(proxy_GetCustomerCompleted);
proxy.GetCustomerAsync(2);
void proxy_GetCustomerCompleted(object sender, GetCustomerCompletedEventArgs e)
{
try
{
label1.Content = e.Result.FirstName + e.Result.LastName;
}
catch (Exception err)
{
label1.Content = "获取服务数据失败";
}
finally
{
busy.IsBusy = false;
}
}
编译程序,看看效果。
Silverlight4的WEB服务数据类型
最新推荐文章于 2024-10-08 12:19:09 发布