解决Web Service中传递子类实例时,序列化的问题。
首先,无论如何传递一个子类的实例是无法解决问题的。
其次,好像没有什么现成的方法能直接从子类的实例中创造出父类的实例来。我曾经尝试返回base,但是失败了。
于是,迫不得已,我只有通过反射来将子类对象的数据传递到父类对象去。
代码如下:
其次,好像没有什么现成的方法能直接从子类的实例中创造出父类的实例来。我曾经尝试返回base,但是失败了。
于是,迫不得已,我只有通过反射来将子类对象的数据传递到父类对象去。
代码如下:
public class DerivedType:WS.BaseType,System.ICloneable
{
public WS.BaseType Clone()
{
WS.BaseType result = new WSClient.WS.BaseType();
PropertyInfo[] props = result.GetType().GetProperties();
foreach (PropertyInfo prop in props)
prop.SetValue(result, prop.GetValue(this, null), null);
return result;
}
object ICloneable.Clone()
{
return this.Clone();
}
}
{
public WS.BaseType Clone()
{
WS.BaseType result = new WSClient.WS.BaseType();
PropertyInfo[] props = result.GetType().GetProperties();
foreach (PropertyInfo prop in props)
prop.SetValue(result, prop.GetValue(this, null), null);
return result;
}
object ICloneable.Clone()
{
return this.Clone();
}
}