在webservice 中使用ArrayList 对象.
2004-08-15 11:09
477 查看
经常看到有人在网上问,如何使用WebService中使用ArrayList.其实这是因为没有好好看MSDN的原因.
ArrayList 是一个线性列表对象(它还是有点意思的.),不过WebService不支持其,不是标准变量对象,如果要有WebService中使用得加上属性. [XmlRoot("根元名")]
例:
______________________序列化的类 YouClass.cs
using System;
using System.Xml.Serialization;
namespace SomeNS
{
[Serializable]
[XmlRoot("NewYouClass")] //该属性需要加上 xml根元的序列化
public class YouSerializabledClass
{
private long m_lID;
public YouSerializabledClass()
{
}
public long lID
{
get
{
return m_lID;
}
set
{
m_lID=value;
}
}
}
______________________________操作YouClass的类 A.cs
[XmlInclude(typeof(YouSerializabledClass))]
public YouSerializabledClass YouSerializabledClassOperation(Some Var)
{
YouSerializabledClass.lID=Convert.ToInt64(Var);
return YouSerializabledClass;
}
_______________________ WebMethod
[WebMethod]
[XmlInclude(typeof(YouSerializabledClass))]
public YouSerializabledClass YouWebMetho(SomeVar Var)
{
YouSerializabledClass YouSerializabledClass1=A.YouSerializabledClassOperation(Var);
return YouSerializabledClass ;
} 这样完了之后,将在客户端产生序列化类的影射.
_________________________________客户端的Reference.cs
//------------------------------------------------------------------------------
// <autogenerated>
// This code was generated by a tool.
// Runtime Version: 1.1.4322.573
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </autogenerated>
//------------------------------------------------------------------------------
//
// 此源代码是由 Microsoft.VSDesigner 1.1.4322.573 版自动生成。
//
namespace SomeNS.SomeNSReference {
using System.Diagnostics;
using System.Xml.Serialization;
using System;
using System.Web.Services.Protocols;
using System.ComponentModel;
using System.Web.Services;
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/BeginYouWebMetho", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
[return: System.Xml.Serialization.XmlElementAttribute("NewYouClass", IsNullable=true)]
public YouSerializabledClass YouWebMetho(string EPID) {
object[] results = this.Invoke("YouWebMetho", new object[] {
EPID});
return ((YouSerializabledClass )(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginYouWebMetho(SomeVar Var, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("BeginYouWebMetho", new object[] {
Var}, callback, asyncState);
}
/// <remarks/>
public YouSerializabledClass EndGetYouWebMetho(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((YouSerializabledClass )(results[0]));
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/")]
public class YouSerializabledClass {
/// <remarks/>
public long lID;
} 这就是你产生的序列化类.
}
ArrayList 是一个线性列表对象(它还是有点意思的.),不过WebService不支持其,不是标准变量对象,如果要有WebService中使用得加上属性. [XmlRoot("根元名")]
例:
______________________序列化的类 YouClass.cs
using System;
using System.Xml.Serialization;
namespace SomeNS
{
[Serializable]
[XmlRoot("NewYouClass")] //该属性需要加上 xml根元的序列化
public class YouSerializabledClass
{
private long m_lID;
public YouSerializabledClass()
{
}
public long lID
{
get
{
return m_lID;
}
set
{
m_lID=value;
}
}
}
______________________________操作YouClass的类 A.cs
[XmlInclude(typeof(YouSerializabledClass))]
public YouSerializabledClass YouSerializabledClassOperation(Some Var)
{
YouSerializabledClass.lID=Convert.ToInt64(Var);
return YouSerializabledClass;
}
_______________________ WebMethod
[WebMethod]
[XmlInclude(typeof(YouSerializabledClass))]
public YouSerializabledClass YouWebMetho(SomeVar Var)
{
YouSerializabledClass YouSerializabledClass1=A.YouSerializabledClassOperation(Var);
return YouSerializabledClass ;
} 这样完了之后,将在客户端产生序列化类的影射.
_________________________________客户端的Reference.cs
//------------------------------------------------------------------------------
// <autogenerated>
// This code was generated by a tool.
// Runtime Version: 1.1.4322.573
//
// Changes to this file may cause incorrect behavior and will be lost if
// the code is regenerated.
// </autogenerated>
//------------------------------------------------------------------------------
//
// 此源代码是由 Microsoft.VSDesigner 1.1.4322.573 版自动生成。
//
namespace SomeNS.SomeNSReference {
using System.Diagnostics;
using System.Xml.Serialization;
using System;
using System.Web.Services.Protocols;
using System.ComponentModel;
using System.Web.Services;
[System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://tempuri.org/BeginYouWebMetho", RequestNamespace="http://tempuri.org/", ResponseNamespace="http://tempuri.org/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)]
[return: System.Xml.Serialization.XmlElementAttribute("NewYouClass", IsNullable=true)]
public YouSerializabledClass YouWebMetho(string EPID) {
object[] results = this.Invoke("YouWebMetho", new object[] {
EPID});
return ((YouSerializabledClass )(results[0]));
}
/// <remarks/>
public System.IAsyncResult BeginYouWebMetho(SomeVar Var, System.AsyncCallback callback, object asyncState) {
return this.BeginInvoke("BeginYouWebMetho", new object[] {
Var}, callback, asyncState);
}
/// <remarks/>
public YouSerializabledClass EndGetYouWebMetho(System.IAsyncResult asyncResult) {
object[] results = this.EndInvoke(asyncResult);
return ((YouSerializabledClass )(results[0]));
}
/// <remarks/>
[System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/")]
public class YouSerializabledClass {
/// <remarks/>
public long lID;
} 这就是你产生的序列化类.
}
相关文章推荐
- 关于C#中数组、ArrayList与List三个对象的使用区别
- "黑马程序员"基础测试:创建ArrayList对象,添加五个元素,使用Iterator遍历输出
- new一个类对象和使用类名创建一个对象有什么区别?LinkList和ArrayList的区别
- Android中使用Intent传递Object和ArrayList<Object>对象和获取
- 【WebService】使用jaxb完成对象和xml的转换
- 如何使用xFire开发webService返回复杂对象List
- java学习:ArrayList对象的使用
- axis2 webservice 接口请求(json对象组装参数请求(用于对象请求)、多个参数请求、阿里巴巴json工具使用)
- java代码调用使用cxf搭建的webService服务传递对象
- 创建ArrayList对象,添加5个元素,使用Iterator遍历输出
- .net与java 使用自定义对象通过WebService调用
- 使用ArrayList集合,对其添加100个不同的元素: 1.使用add()方法将元素添加到ArrayList集合对象中; 2.调用集合的iterator()方法获得Iterator对象,并调用Ite
- .net与java 使用自定义对象通过WebService调用
- 使用Java中的ArrayList给所存对象排序问题
- android使用webservice传递对象
- 您希望通过将所有ArrayList对象替换为相应的泛型版本以提高应用程序的效率,并使得代码更易于使用。当结构体或其他值类型存储在这些数据结构中时,会导致装箱/拆箱操作,这时就需要这么做。
- [bxd学习java基本点]9.ArrayList存对象例子,其除重复及删除,要使用地址,而不是eqauls
- Java6 WebService 使用复杂对象
- java使用 ArrayList 的增删改(Java面向对象基础练习)
- ArrayList构造方法详解-使用无参构造方法创建对象