[解決済み】TimeSpanをXMLにシリアライズする方法
2022-04-11 18:31:32
質問
をシリアライズしようとしています。
TimeSpan
オブジェクトをXMLに変換することができません。ググってみると
TimeSpan
はシリアライズ可能ですが
XmlCustomFormatter
を変換するメソッドは提供されません。
TimeSpan
オブジェクトをXMLに変換したり、XMLから変換したりすることができます。
ある提案されたアプローチは
TimeSpan
の結果をシリアライズし、その代わりに
TimeSpan.Ticks
(そして
new TimeSpan(ticks)
をデシリアライゼーションに使用します)。以下にその例を示す.
[Serializable]
public class MyClass
{
// Local Variable
private TimeSpan m_TimeSinceLastEvent;
// Public Property - XmlIgnore as it doesn't serialize anyway
[XmlIgnore]
public TimeSpan TimeSinceLastEvent
{
get { return m_TimeSinceLastEvent; }
set { m_TimeSinceLastEvent = value; }
}
// Pretend property for serialization
[XmlElement("TimeSinceLastEvent")]
public long TimeSinceLastEventTicks
{
get { return m_TimeSinceLastEvent.Ticks; }
set { m_TimeSinceLastEvent = new TimeSpan(value); }
}
}
私の簡単なテストではうまくいくように見えますが、これが最善の方法なのでしょうか?
XMLとの間でTimeSpanをシリアライズする、より良い方法はありますか?
どのように解決するのですか?
すでに投稿されている方法が一番きれいでしょう。余分なプロパティが嫌なら
IXmlSerializable
しかし、その場合
すべて
というのは、ほとんど意味がありません。例えば、効率的で(複雑な解析などが不要)、文化に依存せず、曖昧さがなく、タイムスタンプ型の数値は簡単で一般的に理解されるからです。
余談ですが、私はよく付け加えます。
[Browsable(false), EditorBrowsable(EditorBrowsableState.Never)]
これは、混乱を避けるために、UIとDLLを参照する際にそれを隠すだけです。
関連
-
[解決済み】"出力タイプがクラスライブラリのプロジェクトは直接起動できない"
-
[解決済み】GDI+、JPEG画像をMemoryStreamに変換する際にジェネリックエラーが発生しました。
-
[解決済み] メンバー '<メンバー名>' にインスタンス参照でアクセスできない
-
[解決済み】「入力文字列が正しい形式ではありませんでした」エラーの解決方法は?[重複しています]。
-
[解決済み] enumを列挙するには
-
[解決済み] intをenumにキャストするにはどうすればよいですか?
-
[解決済み] 辞書を繰り返し使用するには?
-
[解決済み] 乱数(int)を生成する方法を教えてください。
-
[解決済み] JavaScriptのオブジェクトを表示するにはどうすればよいですか?
-
[解決済み] .NETでC#オブジェクトをJSON文字列に変換するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C#で四捨五入する方法
-
[解決済み】EF 5 Enable-Migrations : アセンブリにコンテキストタイプが見つかりませんでした
-
[解決済み】Unity 「関連するスクリプトを読み込むことができません」「Win32Exception: システムは指定されたファイルを見つけることができません"
-
[解決済み】HRESULTからの例外:0x800A03ECエラー
-
[解決済み】Linq 構文 - 複数列の選択
-
[解決済み] 2つのリストを結合する
-
[解決済み] ...基礎となる接続は閉じられました。予期しないエラーが受信で発生しました
-
[解決済み】名前 'ViewBag' が現在のコンテキストに存在しない - Visual Studio 2015
-
[解決済み】スレッド終了またはアプリケーションの要求により、I/O操作が中断されました。
-
[解決済み】Nullableオブジェクトは値を持たなければならない?