.NET의 Xml 직렬 변환기를 통해 xml 파일에 콘텐츠를 씁니다. 여기서는 목록 컬렉션의 직렬화를 소개합니다.
직렬화(Serialization)는 객체의 상태 정보를 A로 변환하는 것입니다. 저장하거나 전송할 수 있는 형태로 처리합니다. 직렬화 중에 객체는 현재 상태를 임시 또는 영구 저장소에 씁니다. 나중에 저장소에서 개체의 상태를 읽거나 역직렬화하여 개체를 다시 만들 수 있습니다.
직렬화를 사용하면 직렬화 없이는 액세스할 수 없는 객체 인스턴스 데이터를 다른 코드에서 보거나 수정할 수 있습니다. 특히 직렬화를 수행하는 코드에는 SerializationFormatter 플래그가 지정된 SecurityPermission이라는 특수 권한이 필요합니다. 기본 정책에 따라 인터넷을 통해 다운로드한 코드 또는 인트라넷 코드는 이 권한을 부여하지 않으며 로컬 컴퓨터의 코드에만 이 권한이 부여됩니다.
일반적으로 객체 인스턴스의 모든 필드는 직렬화됩니다. 즉, 데이터가 인스턴스의 직렬화된 데이터로 표현됩니다. 이렇게 하면 형식을 해석할 수 있는 코드가 멤버의 접근성에 의존하지 않고 이 데이터의 값을 결정할 수 있습니다. 마찬가지로 역직렬화는 직렬화된 표현에서 데이터를 추출하고 접근성 규칙에 관계없이 객체 상태를 직접 설정합니다.
중요한 보안 데이터가 포함될 수 있는 모든 개체는 가능하면 직렬화할 수 없도록 만들어야 합니다. 직렬화 가능해야 하는 경우 직렬화할 수 없는 중요한 데이터를 보유하는 특정 필드를 생성해 보십시오. 이것이 가능하지 않은 경우 데이터가 직렬화 권한이 있는 모든 코드에 노출된다는 점을 인식하고 악성 코드가 해당 권한을 얻지 못하도록 해야 합니다.
요약 : 직렬화는 저장 및 정보 교환을 용이하게 하기 위해 복잡한 객체를 스트림으로 변환하는 것입니다. 저는 보안에 대해 잘 모릅니다. 중요한 것은 일부 정보를 기밀로 유지해야 하는 경우 다른 사람이 역직렬화하는 것을 방지하기 위해 해당 정보를 직렬화 불가능으로 정의한다는 것입니다. 저는 뉴비입니다. 연재에 대해 깊이 있는 의견을 남겨주시면 정말 감사하겠습니다.
(1) 먼저 이름이 포함된 개인 클래스를 만듭니다. 나이, 세 가지 속성을 이메일로 보내세요.
<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) 결과
PS
이 방법을 통해 작성된 xml 파일의 형식은 Xml serializer에서 내부적으로 설정한 형식입니다. 직접 변경할 필요는 없습니다. 시스템 직렬 변환기를 사용하는 대신 직렬 변환기를 직접 만들 수도 있습니다. 다음 기사는 공유할 내용입니다.
위는 xml 파일에 작성한 XML(5) 직렬화 내용입니다. PHP 중국어 넷(www.php.cn)에 주목하세요!