2
如何反序列化一個類,這樣其他類:序列化和反序列化(C#)
var ser = SerializedObject(b);// read from Database!
var des = DeSerializeAnObject(ser, typeof(BaseClass));
BaseClass baseclass = (BaseClass)des;
baseclass.Hello();
如何反序列化一個類,這樣其他類:序列化和反序列化(C#)
var ser = SerializedObject(b);// read from Database!
var des = DeSerializeAnObject(ser, typeof(BaseClass));
BaseClass baseclass = (BaseClass)des;
baseclass.Hello();
你確定它的真正的序列化/反序列化你後?聽起來像你想要的是代碼映射(即複製選定或所有屬性)一個對象到另一個。
看看AutoMapper Getting Started Guide。
在你的榜樣下,你可以做這樣的事情
BaseClass baseClass = Mapper.Map<OtherClass, BaseClass>(b);
我也與你在你的榜樣選擇的類名有些困惑。如果「BaseClass」真的是OtherClass的基類,那麼你只需要做一個演員,但我會猜測事實並非如此。
一個反序列化樣品就像是......
public BaseClass DeSerializeAnObject(BaseClass bc)
{
if (bc == null) return bc;
IFormatter formatter = new BinaryFormatter();
using (Stream stream = new MemoryStream())
{
formatter.Serialize(stream, bc);
stream.Seek(0, SeekOrigin.Begin);
return (BaseClass)formatter.Deserialize(stream);
}
}
想我沒有其他類,(僅序列化類是在數據庫中)。我想從序列化對象執行Hello()。請問,我的英文不好。 – 2011-12-18 12:09:30
@AhmadAhmadi您的意思是說其他一些進程/系統是否將您未知的類型的對象序列化到數據庫中,並且您希望對它們進行反序列化? – 2011-12-18 12:13:27
是的,我必須反序列化它們並執行方法。 – 2011-12-18 12:15:37