webservice里自定义类的问题,请各位高手帮忙解决!
我在webservices里定义了2个类public class SpecialProduct
{
private string Name;
public string fieldName
{
get { return Name; }
set { Name = value; }
}
private string Value;
public string fieldValue
{
get { return Value; }
set { Value = value; }
}
}
public class OrderRequestType//定购请求
{
private SpecialProduct[] specialproduct;
public SpecialProduct[] productInfo
{
get { return specialproduct; }
set { specialproduct = value; }
}
}
--------
我在另一个程序里 实例化OrderRequestType类 otype
在otype里的productInfo属性不是SpecialProduct[] 类型的 而是SpecialProduct
请问这个问题怎么解决 --------------------编程问答-------------------- 我在webservices里实例化OrderRequestType类 这个里面的productInfo属性是SpecialProduct[] 的
--------------------编程问答-------------------- 看看强制转换行不行。 --------------------编程问答-------------------- 我是要给otype.productInfo赋值(要赋数组),但是现在这个属性不是数组的,想知道为什么会这样。 --------------------编程问答-------------------- namespace WindowsApplication3
{
public class SpecialProduct
{
private string Name;
public string fieldName
{
get { return Name; }
set { Name = value; }
}
private string Value;
public string fieldValue
{
get { return Value; }
set { Value = value; }
}
}
public class OrderRequestType//定购请求
{
private SpecialProduct[] specialproduct;
public SpecialProduct[] productInfo
{
get { return specialproduct; }
set { specialproduct = value; }
}
}
public class TestIt{
public TestIt() {
OrderRequestType otype = new OrderRequestType();
SpecialProduct[] info = otype.productInfo;
}
}
}
编译通过,没有问题 --------------------编程问答-------------------- 改成List<SpecialProduct> --------------------编程问答-------------------- 我在webservice里 调试的时候 实例化这个类是正确的 是数组类型。
我在另一个项目里调用webservices的时候 实例化这个类 productInfo的属性就不是数组类型。 --------------------编程问答-------------------- id_thinking 这位朋友能说说怎么改吗?以前没用到过list --------------------编程问答-------------------- public class OrderRequestType//定购请求
{
private List<SpecialProduct> specialproduct;
public List<SpecialProduct> productInfo
{
get { return specialproduct; }
set { specialproduct = value; }
}
}
--------------------编程问答-------------------- 用了list后 这个属性返回的是什么类型的?
我试了下 用一个productInfo[] 赋给这个属性 会报错 属性不匹配 --------------------编程问答-------------------- 用了list后,就也要用list对象来赋值,不能用数组了
你是不是Service服务器端客户段对象不一致的问题?如果是用一下序列化
反序列化来处理。 --------------------编程问答-------------------- 直接用泛型实现比较容易,可序列化,也可代替数组 --------------------编程问答-------------------- webservice 传递对象时必须是可序列化的,不可序列化的对象是无法传递的. --------------------编程问答-------------------- 10楼的方法和建议很不错
建议楼主采用
泛型,序列化/反序列化真是很实用的技术啊 --------------------编程问答-------------------- ws传输实质还是XML,所以是需要序列化的,你可以返回标准的类,在客户端重新组织成自定义类.
如:可以把自定义类的各个属性作为string返回.
或者建议你加上[Serializable]试试看。
补充:.NET技术 , Web Services