2011-02-08 11 views
0

問題:レコードオブジェクトの種類によってXmlSerializerの種類を定義するにはどうすればよいですか?この行に以下のコード、と

XmlSerializer x = new XmlSerializer(typeof(????)); 

は、私はそれを行うことができ、タイプがレコードオブジェクトによって定義されるようにしたいですか?

public void ConvertRecordObjectToXML(object RecordObject, out string XML) 
{ 
    string xml = string.Empty; 

    try 
    { 
     string XmlizedString = null; 
     MemoryStream memoryStream = new MemoryStream(); 
     XmlSerializer x = new XmlSerializer(typeof(????)); // <---- ????? 
     XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.UTF8); 

     x.Serialize(xmlTextWriter, RecordObject); 
     memoryStream = (MemoryStream)xmlTextWriter.BaseStream; 
     XmlizedString = UTF8ByteArrayToString(memoryStream.ToArray()); 
     XML = XmlizedString; 
    } 
    catch (Exception e) 
    { 
     System.Console.WriteLine(e); 
     xml = ""; 
    } 
} 

答えて

3

これを試しましたか?

XmlSerializer x = new XmlSerializer(RecordObject.GetType()); 
6

は、すべてのオブジェクトは、オブジェクトのメソッドGetType()を継承するので、あなたは使用することができるはずです:キーワードは、クラス名をとり

XmlSerializer x = new XmlSerializer(RecordObject.GetType()); 

C# typeof演算と型タイプのオブジェクトを生成します。 GetType()は同じものを返しますが、代わりにインスタンスで動作します。

+1

+1のコードではなく*説明*の回答です。 –

関連する問題