[解決済み] オブジェクトの配列をArrayOfXxxxではなく、Xxxxとしてシリアライズします。
2022-01-31 21:08:19
質問
ASP.NET MVCで、MVCContribのXmlResultを使用しています。
Xxxxオブジェクトの配列があり、それをXmlResultに渡しています。
としてシリアライズされる。
<ArrayOfXxxx>
<Xxxx />
<Xxxx />
<ArrayOfXxxx>
このようにしたいのですが。
<Xxxxs>
<Xxxx />
<Xxxx />
<Xxxxs>
クラスが配列の一部である場合に、どのようにシリアライズされるかを指定する方法はありますか?
すでにXmlTypeを使って表示名を変更していますが、配列の中にあるときにそのグループ名を設定できるような類似のものはないでしょうか。
[XmlType(TypeName="Xxxx")]
public class SomeClass
それとも、このコレクションのためのラッパークラスを追加する必要があるのでしょうか?
どのように解決するのですか?
これは、両方の方法で可能です(ラッパーを使用する、または
XmlRoot
属性を付けるか、あるいは
XmlAttributeOverrides
をシリアライザに追加してください)。
私は、2番目の方法でこれを実装しました。
ここにint型の配列があります。
XmlSerializer
を使ってシリアライズしています。
int[] array = { 1, 5, 7, 9, 13 };
using (StringWriter writer = new StringWriter())
{
XmlAttributes attributes = new XmlAttributes();
attributes.XmlRoot = new XmlRootAttribute("ints");
XmlAttributeOverrides attributeOverrides = new XmlAttributeOverrides();
attributeOverrides.Add(typeof(int[]), attributes);
XmlSerializer serializer = new XmlSerializer(
typeof(int[]),
attributeOverrides
);
serializer.Serialize(writer, array);
string data = writer.ToString();
}
データ変数(直列化された配列を保持)。
<?xml version="1.0" encoding="utf-16"?>
<ints xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<int>1</int>
<int>5</int>
<int>7</int>
<int>9</int>
<int>13</int>
</ints>
ということで、代わりに
ArrayOfInt
となります。
ints
をルート名とする。
の詳細はこちら
XmlSerializer
のコンストラクタは、私が使用したものです。
こちら
.
関連
-
[解決済み】スクリプトクラスが見つからないので、スクリプトコンポーネントを追加できない?
-
解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C# [解決済み] Critical error detected c0000374 - C++ dll returns pointer off allocated memory to C#.
-
[解決済み] Visual Studioのデバッグ/ロードが非常に遅い
-
[解決済み] ディープクローンオブジェクト
-
[解決済み] なぜList<T>を継承しないのですか?
-
[解決済み] \0-9]よりも効率が悪い
-
[解決済み】なぜFunc<T>ではなくExpression<Func<T>を使うのですか?
-
[解決済み】ASP.NET MVCでクライアントのIPアドレスを取得するにはどうすればいいですか?
-
[解決済み】オブジェクトをXMLにシリアライズする
-
[解決済み】ASP.NET MVC 3 - 部分テンプレートと表示テンプレートと編集テンプレート
最新
-
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#
-
[解決済み] 保護レベルによりアクセス不能になりました。
-
[解決済み] エンティティタイプ <type> は、現在のコンテキストのモデルの一部ではありません。
-
[解決済み】ソケットのアドレス(プロトコル/ネットワークアドレス/ポート)は、通常1つしか使用できない?
-
[解決済み】値が期待した範囲に収まらない
-
[解決済み】Entity FrameworkからのSqlException - セッション内で他のスレッドが動作しているため、新しいトランザクションは許可されません。
-
[解決済み】「...は'型'であり、与えられたコンテキストでは有効ではありません」を解決するにはどうすればよいですか?(C#)
-
[解決済み】OnCollisionEnter2Dが実行されない?
-
[解決済み】aspNetCore 2.2.0 - AspNetCoreModuleV2 エラー
-
[解決済み】エラー「必要なフォーマルパラメータに対応する引数が与えられていない」を解決する?