2012-01-25 31 views
1

我有下面的类:克隆对象的实例,其基本类型

public class AddCouponInfoRequest : namespace.Request 
{ 

} 

我有AddCouponInfoRequest的一个实例,在我的手,我想namespace.Request的实例具有相同的值。后序列化是

namespace.Request req = (namespace.Request)request; 
string xml = req.SerializeToXml(); 

的XML值:

这并不做工精细

< AddCouponInfoRequest的xmlns:XSD = \“http://www.w3.org/ 2001/XMLSchema \“xmlns:xsi = \”http://www.w3.org/2001/XMLSchema-instance \“> \ r \ n \ r \ n \ r \ n ...

我需要一个纯粹的namespace.Request对象。做这个的最好方式是什么?

由于提前,

回答

1

SerializeToXml是一个虚拟方法,从而它是合乎逻辑它总是调用覆盖方法。

可以,例如,用于AddCouponInfoRequest

string SerializeToXmlAsParent() 
{ 
    return base.SerializeToXml(); 
} 
+0

其实我需要的Request对象的实例来创建一个新的方法。我做了序列化只是为了显示转换没有按预期工作。 – anilca

+1

您示例中的序列化完全按照它应该的方式工作。恐怕没有简单的一行代码方式来忽略被覆盖的虚拟方法。在你的情况下,你必须是否使用我提出的方法,然后使用请求 或 可以创建一些Request.BasicSerialize()方法的变体并在AddCouponInfoRequest中重写它以调用base.SerializeToXml() 然后您不必将您的基类转换为AddCouponInfoRequest。您使用虚拟方法与虚拟方法战斗:-) – ElDog