インタビューで次の質問がありました。
- XMLシリアル化について説明します。
XMLシリアル化とは何かわかりません。いくつかのサイトを調べましたが、XMLシリアル化についての(短く明確な)説明が見つかりませんでした。
誰かがXMLシリアル化とは何かを説明できますか?XMLシリアル化について明確に把握し、この質問があったときはいつでも自信を持って将来のインタビューに立ち向かう準備ができるようになると助かります。
次のようなクラスがあるとします。
Public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int age { get; set; }
}
そして、このクラスのオブジェクトは次のようになります。
Person Student = new Person();
Student.FirstName = "John";
Student.LastName = "Smith";
Student.age= 24;
次に、xmlでオブジェクトStudentをシリアル化します。次のXMLファイルを出力として取得します。
<Person>
<FirstName>John</FirstName>
<LastName >Smith</LastName >
<age>24</age>
</Person>
XMLを逆シリアル化して、元のオブジェクトを出力として取得できます。
つまり、クラスとXMLの間の変換のようなものです。ところで、XMLファイルは通常テキストファイルです。
これは、オブジェクトをXML形式に変換して、HTTPおよびその他のトランスポートプロトコルを介して転送したり、その他の目的で保存したりできるようにすることを意味します。XML
異なるシステム間のデータ転送フォーマットと見なされます(異なる言語でも開発されています)。あるアプリから別のアプリにXML形式でデータを送信できます。ほとんどのWebServicesは、XML形式でデータを返します。さまざまなクライアントがこれらのWebサービスメソッドにアクセスできます。これは、Webサービスが入力されるデータのXML形式を処理するだけなので、Webサービスがどのプラットフォーム/言語で記述されているかを気にする必要がありません。
Youssefの答えを拡張するために、次のようにして、シリアル化されたXMLの記述方法を指定することもできます。
[XmlRoot("RootElementsName")]
Public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int age { get; set; }
}
これにより、次のようなXMLが生成されます。
<RootElementsName>
<FirstName>John</FirstName>
<LastName >Smith</LastName >
<age>24</age>
</RootElementsName>
さまざまなXML修飾子の詳細については、http://msdn.microsoft.com/en-us/library/e123c76wを参照してください。
まず、C#でシリアル化が重要である理由を理解する必要があります。c#アプリケーションを実行すると、C#オブジェクトが作成されます。ある時点で、後で使用できるように永続化することをお勧めします。たとえば、Firefoxダウンローダーのようなアプリケーションを作成している場合です。あなたがそれを閉じるとき、あなたがそれをダウンロードしている途中であるならば、あなたはそれを最後の閉じた状態でリロードすることができます。
したがって、バイナリシリアル化と呼ばれるハードディスクのステータスを保持したい場合。xmlシリアル化と呼ばれるワイヤーを介してオブジェクトを送信する場合