忍者ブログ
〓 Admin 〓
製作しているゲームの近況や私事など
[13]  [12]  [11]  [10]  [9]  [8]  [7]  [6]  [5]  [4
×

[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。

敵データやフィールドの管理なんかでデータをxmlに保持しておこうとしていました.
C#にはXmlSerializerという便利なものがありまして,クラスや配列なんかを一括で書きこんでくれるんですが…正しく利用しないとバグの嵐.
しかも「反映中にエラーが発生しました」というえらく抽象的なもので原因が全くわかりません.

そんなわけでこれの解決法を書き留めておきます.


私の場合のこのエラー,主に何が原因かといいますと,書きこむクラスのコンストラクタになのですね.
XmlSerializerは書きこむクラスが空の引数を持つコンストラクタを持っていないとエラーを吐きます.
そんなわけでこんなダミーコンストラクタを用意しましょう.


public クラス名()
{
}

私の場合はこれで解決しました.
あとちなみに,つい忘れがちなXmlAttributeの設定も少し書いておきます.

とは言ってもリストを使う場合はリストの前に[XmlElemnt()].と書くだけなんですけどね.

[XmlElement()]
public List EncountObjects { set; get; }

こんな感じ.
書きたくないデータには[XmlIgnore()]を書いておきましょう.位置は[XmlElement]と同じです.

あとなにかバグになりうるとしたら変数をpublicにしていないとかプロパティのsetインデクサが無いとかでしょうか.これらは目で見てわかるようなエラーが出るので直すのはそう難しくないでしょう.

今回はこんなところで.

PR
この記事にコメントする
お名前
タイトル
文字色
メールアドレス
URL
コメント
パスワード   Vodafone絵文字 i-mode絵文字 Ezweb絵文字
secret (管理人しか読むことができません)
この記事へのトラックバック
この記事にトラックバックする:
カレンダー
04 2024/05 06
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
フリーエリア
最新CM
[06/24 ym]
最新TB
プロフィール
HN:
TALE
HP:
性別:
非公開
職業:
ふつーな大学生
趣味:
ゲーム作り・作曲・動画作り等々
バーコード
ブログ内検索
P R
Copyright(c) TalesBlog All Rights Reserved.* Powered by NinjaBlog
* material by Pearl Box * Template by tsukika

忍者ブログ [PR]