0

私はオンラインでいくつかの同様の質問を見てきましたが、私の問題を解決する答えが見つかりませんでした. クラスからデータ(登録情報)を取得してxmlファイルに入れようとしています。プログラムは次の行を超えません。

var serializer = new XmlSerializer(typeof(AccountStructure));

そしてエラー:

   InvalidOperationException: To be XML serializable, types which inherit from 
 IEnumerable must have an implementation of Add(System.Object) at all levels of 
 their inheritance hierarchy. UnityEngine.Transform does not implement 
 Add(System.Object).

私は自分が間違っていることに困惑しており、助けていただければ幸いです。私はまだネットワーキングの初心者なので、記事へのリンクはあまり役に立ちません。適切な構文、または私がすべきこととその理由の説明は驚くべきものです!

PS - Unity ゲーム エンジンで MonoDevelop C# を使用しています。

以下は私のクラスのコードです:

アカウント情報クラス: エラーの場所

 using UnityEngine;
 using System.Collections.Generic;
 using System.Xml;
 using System.Xml.Serialization;
 //using System.Runtime.Serialization;
  using System.IO;
 [XmlRoot("UserInfo")]
 public class AccountStructure : MonoBehaviour {


    [XmlElement]
    public string Username;
    [XmlElement]
    public string Password;
    [XmlElement]
    public string Email;
    [XmlElement]
    public int Age;
    [XmlElement]
    public bool isMember;

    public void Save(string path){
        Debug.Log("1");
        //DataContractSerializer dcs = new DataContractSerializer(typeof(AccountStructure));
        var serializer = new XmlSerializer(typeof(AccountStructure));
        Debug.Log("2");
        var stream = new FileStream(path, FileMode.Create);
        serializer.Serialize(stream, this);
        stream.Close();
    }
    public void Add(System.Object obj){

    }
 }

サーバー RPC

[RPC]

public void Register(string Username, string Password, string Email, int Age, NetworkPlayer Player){
    if(Network.isServer){
        RegisterData.Username = Username;
        RegisterData.Password = Password;
        RegisterData.Email = Email;
        RegisterData.Age = Age;
        RegisterData.isMember = true;
        log += " Sending Data";
        RegisterData.Save(Path.Combine(Application.persistentDataPath, "info.xml"));
        log += " Sent Data";
    }
}

クライアントコール

[RPC]

public void Register(string Username, string Password, string Email, int Age, NetworkPlayer Player){

アライメントエラーについてお詫び申し上げます。

編集:不要なコードを削除しました。

4

0 に答える 0