ホームページ  >  記事  >  バックエンド開発  >  XML(5) シリアル化して XML ファイルを書き込む

XML(5) シリアル化して XML ファイルを書き込む

黄舟
黄舟オリジナル
2017-02-10 16:33:581551ブラウズ

.NET の Xml シリアライザーを通じてコン​​テンツを XML ファイルに書き込みます。ここではリスト集の連載を紹介します。

連載ってそもそも何?それは何をするためのものか?

シリアル化

シリアル化 (Serialization) は、オブジェクトの状態情報を保存または送信できる形式に変換するプロセスです。シリアル化中、オブジェクトは現在の状態を一時ストレージまたは永続ストレージに書き込みます。後で、オブジェクトの状態をストアから読み取るか逆シリアル化することで、オブジェクトを再作成できます。

シリアル化を使用すると、シリアル化なしではアクセスできないオブジェクト インスタンス データを他のコードで表示または変更できるようになります。具体的には、シリアル化を実行するコードには特別なアクセス許可 (SerializationFormatter フラグが指定された SecurityPermission) が必要です。デフォルトポリシーではインターネット経由 ダウンロードされたコードまたはイントラネット コードにはこのアクセス許可が付与されません。ローカル コンピューター上のコードのみにこのアクセス許可が付与されます。

通常、オブジェクト インスタンスのすべてのフィールドはシリアル化されます。これは、データがインスタンスのシリアル化されたデータとして表されることを意味します。このようにして、形式を解釈できるコードは、メンバーのアクセシビリティに依存せずにこのデータの値を決定できる可能性があります。同様に、逆シリアル化では、アクセシビリティ ルールに関係なく、シリアル化された表現からデータが抽出され、オブジェクトの状態が直接設定されます。

重要なセキュリティ データが含まれる可能性のあるオブジェクトは、可能であればシリアル化不可能にする必要があります。シリアル化可能にする必要がある場合は、シリアル化できない重要なデータを保持する特定のフィールドを生成してみてください。これが不可能な場合は、シリアル化権限を持つコードにデータが公開されることに注意し、悪意のあるコードがその権限を取得しないようにする必要があります。


要約すると、: シリアル化とは、ストレージと情報交換を容易にするために、複雑なオブジェクトをストリームに変換することです。セキュリティについてはあまり詳しくありませんが、重要なのは、一部の情報を機密にする必要がある場合、他の人がそれを逆シリアル化できないように、その情報を非シリアル化可能として定義することです。私は初心者ですXML(5) シリアル化して XML ファイルを書き込む、連載に関する深い洞察があれば、貴重なコメントを残していただければ幸いです。 XML(5) シリアル化して XML ファイルを書き込む

リストのコレクションはシリアル化され、Xml ファイルに書き込まれます

(1) まず、名前、年齢、電子メールの 3 つの属性を含む person クラスを作成します。


<span style="font-family:Microsoft YaHei;font-size:18px;">public class person
    {
        public string Name
        {
            set;
            get;
        }
        [XmlIgnore]
        public int Age
        {
            get;
            set;
        }
        public string Email
        {
            get;
            set;
        }

    }</span>

注: 上記のコードの [XmlIgnore] は、Age 属性に対するシリアル化できない操作です。これは、Xml シリアライザー専用のシリアル化不可能な機能です。それ以外のオブジェクトの場合は、[NonSerialized] を使用します。
(2) XML シリアル化を実現するためにリスト コレクションを通じてデータを追加します



<span style="font-family:Microsoft YaHei;font-size:18px;">List<person> list=new List<person> ();
            list.Add(new person() { Name = "istari", Age = 22, Email = "1061399756@qq.com" });
            list.Add(new person() { Name = "ss", Age = 22, Email = "1061399756@qq.com" });
            list.Add(new person() { Name = "ww", Age = 22, Email = "521@qq.com" });

            //实现xml序列化
            XmlSerializer xml = new XmlSerializer(typeof(List<person>));
            using (FileStream fs=File.OpenWrite ("List.xml"))
            {
                xml.Serialize(fs, list);

            }
            Console.WriteLine("OK");
            Console.ReadKey();</span>

(3) 結果



<span style="font-family:Microsoft YaHei;font-size:18px;"><?xml version="1.0"?>
<ArrayOfPerson xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <person>
    <Name>istari</Name>
    <Email>1061399756@qq.com</Email>
  </person>
  <person>
    <Name>ss</Name>
    <Email>1061399756@qq.com</Email>
  </person>
  <person>
    <Name>ww</Name>
    <Email>521@qq.com</Email>
  </person>
</ArrayOfPerson></span>

PS

この方法により、 XML ファイルに書き込まれる形式は、Xml シリアライザーによって内部的に設定された形式です。自分で変更する必要はありません。システム シリアライザーを使用する代わりに、シリアライザーを自分で作成することもできます。次の記事は皆さんにシェアしていただく記事です。 XML(5) シリアル化して XML ファイルを書き込む


上記は、xml ファイルに書き込まれた XML (5) シリアル化の内容です。さらに関連する内容については、PHP 中国語 Web サイト (www.php.cn) に注目してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。