2012-01-25 39 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