[解決済み] オブジェクトを文字列に直列化する
2022-03-17 09:54:32
質問
Objectをファイルに保存する方法は以下の通りです。
// Save an object out to the disk
public static void SerializeObject<T>(this T toSerialize, String filename)
{
XmlSerializer xmlSerializer = new XmlSerializer(toSerialize.GetType());
TextWriter textWriter = new StreamWriter(filename);
xmlSerializer.Serialize(textWriter, toSerialize);
textWriter.Close();
}
正直言って、私は書いていません(型パラメータを取る拡張メソッドに変換しただけです)。
今、私はそれが文字列として私に戻ってxmlを与える必要があります(ファイルに保存するのではなく)。 私はそれを調べていますが、私はまだそれを理解していない。
このようなオブジェクトに慣れている人にとっては、本当に簡単なことかもしれないと思いました。 そうでない場合は、いずれ私が解決するつもりです。
どのように解決するのですか?
を使用します。
StringWriter
の代わりに
StreamWriter
:
public static string SerializeObject<T>(this T toSerialize)
{
XmlSerializer xmlSerializer = new XmlSerializer(toSerialize.GetType());
using(StringWriter textWriter = new StringWriter())
{
xmlSerializer.Serialize(textWriter, toSerialize);
return textWriter.ToString();
}
}
注:この場合
toSerialize.GetType()
の代わりに
typeof(T)
を使用すると、XmlSerializer のコンストラクタで使用できるすべてのサブクラスをカバーできます。
T
(に由来する型を渡した場合、後者の方法では失敗します。
T
.
このステートメントを動機づけるサンプルコードのリンクはこちらです。
XmlSerializer
を投げる
Exception
いつ
typeof(T)
が使われているのは、派生型の基底クラスで定義されているSerializeObjectを呼び出すメソッドに、派生型のインスタンスを渡すためです。
http://ideone.com/1Z5J1
.
また、Ideoneはコードの実行にMonoを使用しており、実際の
Exception
Microsoft .NETランタイムを使用した場合の
Message
Ideoneに表示されているものと同じですが、同じように失敗します。
関連
-
[解決済み】GDI+、JPEG画像をMemoryStreamに変換する際にジェネリックエラーが発生しました。
-
[解決済み] JavaScriptで文字列が部分文字列を含むかどうかを確認する方法は?
-
[解決済み] C#のStringとstringの違いは何ですか?
-
[解決済み] JavaでInputStreamを読み込んでStringに変換するにはどうすればよいですか?
-
[解決済み] なぜパスワードにはStringではなくchar[]が好まれるのですか?
-
[解決済み] Pythonには文字列の'contains'サブストリングメソッドがありますか?
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] バイトを文字列に変換する
-
[解決済み】JavaScriptで文字列の出現箇所をすべて置換する方法
-
[解決済み】大文字・小文字を区別しない「Contains(string)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】ここで「要求URIに一致するHTTPリソースが見つかりませんでした」となるのはなぜですか?
-
[解決済み] [Entity Framework 4.1でエンティティに関連オブジェクトを追加する際に、エンティティオブジェクトをIEntityChangeTracker.の複数のインスタンスから参照できない。
-
[解決済み】SmtpException: トランスポート接続からデータを読み取れません:net_io_connectionclosed
-
[解決済み】非静的メソッドはターゲットを必要とする
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み】「...は'型'であり、与えられたコンテキストでは有効ではありません」を解決するにはどうすればよいですか?(C#)
-
[解決済み】Visual Studio: 操作を完了できませんでした。パラメータが正しくありません
-
[解決済み】値をNULLにすることはできません。パラメータ名:source
-
[解決済み】URLから画像をダウンロードする方法
-
[解決済み】Microsoft.Extensions.LoggingからILoggerを解決することができない