2012-03-12 9 views
-2

中に書いていない私は、タイムスタンプ付き直列化された値がなぜ削除された後タイムスタンプは、XML searilization

XmlSerializer xs = new XmlSerializer(object); 
XmlTextWriter xmlTextWriter = new XmlTextWriter(memoryStream, Encoding.ASCII); 
xs.Serialize(xmlTextWriter, obj); 
xmlString = ASCIIByteArrayToString(memoryStream.ToArray()) 

を記述しようとしていますか?どのように私はC#でタイムスタンプのフォーマットの値をシリアル化することができますか?

+3

タイムスタンプがどのようなタイプですか?それは 'DateTime'ですか、' TimeSpan'ですか? 'obj'はどのように見えますか? – svick

+0

いいえ、タイムスタンプはdbで提供されている時刻形式です。この形式の時刻は01:43:12ですが、シリアル化すると空の値を書き込んでいません。 –

+0

私たちはあなたを助けるためにそれ以上のことを知る必要があります。タイムスタンプの実際の*タイプ*は何ですか? Isは 'string'ですか?シリアライズしているクラスのコードと生成されたXMLを表示できますか? – svick

答えて

0

いくつか確認する必要があります。最初に次の行:

XmlSerializer xs = new XmlSerializer(object); 

これは有効なC#ではなく、コンパイルされません。私はあなたが意味を考える:次に

XmlSerializer xs = new XmlSerializer(obj.GetType()); 

タイムスタンプが、それはXMLシリアル化するためのパブリックゲッターとセッターを持って、このOBJのプロパティであることを確認してください。

例:

public class Foo 
{ 
    public DateTime Timestamp { get; set; } 
} 

、その後:

var obj = new Foo 
{ 
    Timestamp = DateTime.Now 
}; 

var xs = new XmlSerializer(obj.GetType()); 
using (var stream = new MemoryStream()) 
{ 
    xs.Serialize(stream, obj); 
    string xml = Encoding.UTF8.GetString(stream.ToArray()); 
} 

が生成する:

<?xml version="1.0"?> 
<Foo xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
    <Timestamp>2012-03-13T08:21:12.5391233+01:00</Timestamp> 
</Foo> 
関連する問題