私はlinqを使ってXML文書を読み込み、それをitemのリストに格納しようとしています。 "Item"という名前のクラスがあります。このクラスには "Effet"という別のクラスが含まれています。アイテムを作成することはできますが、「Effet」を初期化することはできません。 (いずれかがnullのままであるか、別のものを書き込もうとするとコンパイラエラーが発生します) 複数のものを試しましたが、何も働かなかった。ここで私が試したことがあります。ここで xmlと2つのクラスを持つlinq#
は私のコードである(現在はコメント):あなたはそこまでではありませんnamespace RPGProject.Entity
{
public class Effet
{
public Monstre Cible { get; set; }
public Categorie Categorie { get; set; }
public int Magnitude { get; set; }
public int Duree { get; set; }
public Effet()
{
//this.Cible = null;
//this.Categorie = Categorie.Divers;
this.Magnitude = 0;
this.Duree = 0;
}
}
}
namespace RPGProject
{
public enum Categorie
{
Guérison,
Résurrection,
Attaque,
Stimulant, //Gain en force, énergie, etc
Divers //Orbe, sphère de capture
}
public class Item
{
public string Nom { get; set; }
public Effet Effet { get; set; }
public int Cout { get; set; } //$$$
public int Ville { get; set; }
public int Rarete { get; set; }
public Item() {}
public Item(string nom) { this.Nom = nom; }
public Item(string nom, Effet effet, int cout, int ville)
{
this.Nom = nom;
this.Effet = new Effet();
this.Cout = cout;
this.Ville = ville;
}
//Redéfinition afin de pouvoir comparer les items du dictionnaire
public override bool Equals(object obj)
{
var k = obj as Item;
if (k != null)
{
return this.Nom == k.Nom;
}
return base.Equals(obj);
}
//Redéfinition afin de pouvoir comparer les items du dictionnaire
public override int GetHashCode()
{
return this.Nom.GetHashCode();
}
}
}
XMLファイル
<liste_item>
<item>
<nom>Seringue d'adrénaline</nom>
<effet>
<cible></cible>
<categorie>Résurrection</categorie>
<magnitude>0</magnitude>
<duree>1</duree>
</effet>
<categorie></categorie>
<cout>250</cout>
<ville>1</ville>
</item>
</liste_item>
あなたが読もうとしているXMLのサンプルを –
から投稿する必要があります。「編集リンクを共有」で追加しました。 – naghal