IT분야/C#
[C#] XML 직렬화 클래스 사용 예제
suroMind
2011. 11. 3. 18:42
XML 직렬화하는 방법은 http://blog.suromind.com/78 참조
1. XML 예제
admin Uaps+82i8GTmJBZbvbkI6Q== Administrator admin22 Uaps+82i8GTmJBZbvbkI6Q== Administrator admin333 Uaps+82i8GTmJBZbvbkI6Q== Operator admin777 Uaps+82i8GTmJBZbvbkI6Q== Visitor
2. XML 로드
private static List_userInfoList; /// /// 사용자 정보 로드 /// /// public static void reqLoadUserInfo(string path) { try { var s = new XmlSerializer(typeof(UserInfo)); var fs = new FileStream(path, FileMode.Open); TextReader reader = new StreamReader(fs); fs.Position = 0; var c = (UserInfo)s.Deserialize(reader); fs.Close(); reader.Dispose(); _userInfoList = c.Items != null ? c.Items.ToList() : new List(); } catch (Exception ex) { Console.WriteLine("Xml Load Error" + ex.ToString()); } }
3. XML 저장
////// 사용자 정보 저장 /// /// public void reqStoreUserInfo(string fileName) { if (fileName == "") { fileName = Application.StartupPath + @"\Xml\UserInfo.xml"; } var ca = new UserInfo(); try { ca.Items = _userInfoList.ToArray(); var s = new XmlSerializer(typeof(UserInfo)); var fs = new FileStream(fileName, FileMode.Create); TextWriter writer = new StreamWriter(fs); fs.Position = 0; s.Serialize(writer, ca); fs.Close(); } catch (Exception ex) { Console.WriteLine("XML Save Error : " + ex.ToString()); } }
4. 사용
private void Test() { foreach (UserInfoUser item in 클래스명._userInfoList) { Console.WriteLine(item.Power); Console.WriteLine(item.UserId); Console.WriteLine(item.Passwd); Console.WriteLine(item.userNo); } }