ホームページ  >  記事  >  バックエンド開発  >  ディスカッション: XMLSerialize を使用したシリアル化と逆シリアル化_PHP チュートリアル

ディスカッション: XMLSerialize を使用したシリアル化と逆シリアル化_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-21 15:07:221237ブラウズ

概念: XML シリアル化は、保存または送信のためにパブリック フィールドと属性をシーケンス形式 (ここでは XML) に変換するプロセスです。逆シリアル化とは、XML からオブジェクトを元の状態に再作成することです。

コードをコピーします コードは次のとおりです:

class SerializeDemo
{
static void Main()
{
EmployeeCollection 従業員コレクション = new EmployeeCollection()
{
{
従業員 = Employeer.Employees()
};
XmlSerializerserialize = new XmlSerializer(typeof(EmployeeCollection));
string filePath = @"E:PProjectTestEmployee.xml";
SerializeEmployee(serialize, filePath,employeeCollection);
DeserializeEmployee(serialize, filePath);
static void SerializeEmployee(XmlSer) ializerserialize、string filePath、EmployeeCollection従業員Collection)
{
using ( FileStream fs = new FileStream(filePath, FileMode.Create, FileAccess.Write))
{
Serialize(fs,employeeCollection);
}
}
static void DeserializeEmployee(XmlSerializerserialize,string filePath)
{
using (FileStream fs = new FileStream(filePath, FileMode.Open, FileAccess.Read))
{
EmployeeCollection collection = (EmployeeCollection)serialize.Deserialize(fs);
collection.Employees.ForEach(e => Console.WriteLine("名前:{0},性別:{1},年齢:{2},学歴:{3}", e.userName, e.gender, e.age, e.education));
}
}
}
[シリアル化可能]
public class EmployeeCollection
{
public List従業員{取得;セット; }
}
[シリアル化可能]
public class Employeer
{
{
public string userId { get;セット; }
public string userName { get;セット; }
public string 性別 { get;セット; }
public int age { get;セット; }
公開リスト<職務経験> workExperience { 取得;セット; }🎜 public string education { get;セット; }
public static List従業員()
{
新しいリストを返す()
{
新しい従業員()
{ userId = "0001",
userName = "guoHu",
性別="男",
年齢= 25、学歴="underGraduate",
workExperience = WorkExperience.GetWorkExperience("0001")
}
};

}
}
[シリアル化可能]
public class WorkExperience
{
public string userId { get;セット; }
public string companyName { get;セット; }
public string Seniority { get;セット; }

public static List GetWorkExperience(string userId)
{
リスト workExperience = new List();
Unityunity = Unity.GetInstance();
DataTable table = new DataTable();
unity.GetTable(out table);

varエクスペリエンス = (table.AsEnumerable のエクスペリエンスより) ()
ここで、 experience.Field("UserId") == userId
new
{
companyName = experience.Field("CompanyName"),
年功数 = experience.Field(「年功序列」 ")
}).ToList();
experience.ForEach(e => workExperience.Add(new WorkExperience() { companyName = e.companyName, Seniority = e.seniority }));
return workExperience;
}
}
public class Unity
{
public static DataTable tables = new DataTable();
public static DataRow dr;
public static DataColumn dc = new DataColumn();
public static object objLock = new object();
public static UnityunityInstance ;
private Unity()
{

}
public static Unity GetInstance()
{
if (unityInstance == null)
{
ロック (objLock)
{
if (unityInstance == null)
{
U​​nityInstance = new Unity();
}
}
}
returnunityInstance;
}
public void GetTable(out可能な dt)
{
unityInstance.CreateTable();

dr = tables.NewRow();
dr["UserId "] = "0001";
dr["CompanyName"] = "WireSoft";
dr["Seniority"] = "2012.02-2012.05";
tables.Rows.Add(dr);
dr = tables.NewRow( );
dr["UserId"] = "0001";
dr["CompanyName"] = "Jin Xun";
dr["Seniority"] = "2009.07-2011.02";
tables.Rows.Add(dr) ;
dr = tables.NewRow();
dr["UserId"] = "0002";
dr["CompanyName"] = "華偉";
dr["Seniority"] = "20 11.07-";
テーブル.Rows.Add(dr);
dt = tables.Copy();
}
public void CreateTable()
{
dc = new DataColumn("UserId", System.Type.GetType("System.String") ) ;
tables.Columns.Add(dc);
dc = new DataColumn("companyName", System.Type.GetType("System.String"));
tables.Columns.Add(dc);
dc = new DataColumn ("seniority", System.Type.GetType("System.String"));
tables.Columns.Add(dc);
}
}

www.bkjia.comtru​​ehttp://www.bkjia.com/PHPjc/327540.html技術記事概念: XML シリアル化は、保存または送信のためにパブリック フィールドと属性をシーケンス形式 (ここでは XML) に変換するプロセスです。逆シリアル化とは、XML からオブジェクトの元の状態を再作成することです...
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。