Serialize Documents with the C# Driver

5283 단어 Serialize
1. 소개
이 문서는 1.8 버전의 C# 드라이브입니다.
이 단원에서는 C# 클래스와 BSON 문서 간의 서열화 및 반서열화에 대해 다룹니다.서열화는 대상을 몬goDB에 저장할 수 있는 BSON 문서로 비추는 과정이고 반서열화는 한 BSON 문서에서 하나의 대상을 재구성하는 과정이다.이러한 이유로 서열화 과정도 항상 '대상 매핑' 으로 사용된다.
서열화는 BSON 라이브러리를 통해 처리됩니다.BSON 라이브러리는 확장 가능한 서열화 구조를 가지고 있으며, 모든 서열화를 제어할 필요가 있다면 할 수 있습니다.BSON 라이브러리는 대부분의 경우 사용자의 요구에 맞는 기본 서열화를 제공합니다.너는 다양한 방식으로 기본 서열화를 보충해서 너의 특수한 수요를 처리할 수 있다.
기본 서열화 프로세서 처리 서열화의 주요 방식은 "class map"을 통해 처리됩니다.하나의classmap은 클래스와 BSON 문서 사이의 맵을 정의하는 구조입니다.이것은 서열화할 필드와 속성을 포함하고 서열화된 매개 변수를 정의합니다.
기본 서열화기, 내장도 많이 지원합니다.NET 데이터 형식 (기본값, 그룹, 목록, 사전 등) 을 class mas에 지원합니다.
클래스의 실례가 서열화되기 전에classmap이 존재해야 합니다.이classmap을 스스로 정의할 수도 있고, 처음 실행할 때 자동으로 만들 수도 있으며, automapping이라고도 부른다.
2. Class Map 만들기
초기화 코드에 다음과 같이 class map을 만듭니다.
BsonClassMap.RegisterClassMap<MyClass>();
이로 인해 MyClass는 자동으로 매핑되고 등록됩니다.이 예에서 너는
3. Maps 만들기
기본적으로 클래스는 0 매개 변수를 포함하는 구조기를 포함해야 합니다. 이것은 실례를 초기화하는 데 사용됩니다.그러나 매개 변수가 속성과 필드에 비치도록 구조기를 설정할 수도 있다.여기에 이런 방법이 하나 있다.
표현식을 사용하여 드라이버를 사용하여 다음과 같이 매핑할 수 있습니다.
public class Person
{
  public string FirstName { get; private set; }
  public string LastName { get; private set; }

  public Person(string firstName, string lastName)
  {
    FirstName = firstName;
    LastName = lastName;
  }
}

// snip...

BsonClassMap.RegisterClassMap<Person>(cm =>
{
    cm.AutoMap();
    cm.MapCreator(p => new Person(p.FirstName, p.LastName));
});
사용 속성:
public class Person
{
  public string FirstName { get; set; }
  public string LastName { get; set; }

  [BsonConstructor]
  public Person(string firstName, string lastName)
  {
    FirstName = firstName;
    LastName = lastName;
  }
}
여러 개의 구조기가 있을 때, 더욱 일치하는 것을 사용할 것이다.예를 들면 다음과 같습니다.
public class Person
{
  public string FirstName { get; set; }
  public string LastName { get; set; }
  public DateTime? BirthDate { get; set; }

  [BsonConstructor]
  public Person(string firstName, string lastName)
  {
    // snip...
  }

  [BsonConstructor]
  public Person(string firstName, string lastName, DateTime birthDate)
  {
    // snip...
  }
}
만약 데이터베이스에 있는 문서에 BirthData 요소가 있다면, 우리는 3개의 파라미터가 있는 구조기를 사용할 것이다. 왜냐하면 그는 더욱 전문적이기 때문이다.
또한

좋은 웹페이지 즐겨찾기