다음을 통해 공유


ReferenceHandler.Preserve 속성

정의

JSON 개체 및 배열이 참조 형식으로 역직렬화되고 참조 형식이 직렬화될 때 작성될 때 메타데이터 속성이 적용되는지 여부를 나타내는 개체를 가져옵니다. 이는 주기 또는 중복 참조를 포함하는 개체에서 왕복 가능한 JSON을 만드는 데 필요합니다.

public:
 static property System::Text::Json::Serialization::ReferenceHandler ^ Preserve { System::Text::Json::Serialization::ReferenceHandler ^ get(); };
public static System.Text.Json.Serialization.ReferenceHandler Preserve { get; }
member this.Preserve : System.Text.Json.Serialization.ReferenceHandler
Public Shared ReadOnly Property Preserve As ReferenceHandler

속성 값

ReferenceHandler

설명

  • Serialize에서:

    • 복잡한 참조 형식을 작성할 때 serializer는 메타데이터 속성($id$values``$ref) 내에서도 작성합니다.
    • 출력 JSON에는 모든 개체에 대한 추가 $id 속성이 포함되며, 모든 열거 가능한 형식에 대해 내보내는 JSON 배열은 및 $values 속성을 포함하는 $id JSON 개체 내에 중첩됩니다.
    • ReferenceEquals(Object, Object) 는 개체가 동일한지 여부를 확인하는 데 사용됩니다.
    • 개체가 이전에 직렬화된 개체와 동일하면 해당 개체의 식별자($ref)에 대한 포인터($id)가 대신 작성됩니다.
    • 값 형식에 대한 메타데이터 속성은 작성되지 않습니다.
  • 역직렬화:

    • 중복된 참조 및 주기를 유지하는 데 사용되는 JSON 내의 메타데이터 속성은 올바른 형식인 한 적용됩니다.*
    • 메타데이터 속성을 포함하지 않는 JSON 개체의 경우 역직렬화 동작은 사용하지 Preserve않는 것과 동일합니다.
    • 값 형식의 $id 경우 메타데이터 속성은 무시됩니다. JSON 개체 내에서 메타데이터 속성이 발견되면 $ref A JsonException 가 throw됩니다.
    • 열거 가능한 값 형식의 $values 경우 메타데이터 속성은 무시됩니다.
  • JSON 내의 메타데이터 속성이 올바른 형식으로 간주되려면 다음 규칙을 따라야 합니다.

    • 메타데이터 속성은 $id JSON 개체의 첫 번째 속성이어야 합니다.
    • 메타데이터 속성을 포함하는 JSON 개체에는 $ref 다른 속성이 포함되어서는 안 됩니다.
    • 메타데이터 속성의 $ref 값은 JSON의 앞부분에 나타난 값을 참조 $id 해야 합니다.
    • $ref 메타데이터 속성의 $id 값은 JSON 문자열이어야 합니다.
    • 예를 들어 List<T>열거 가능한 형식의 경우 JSON 배열은 해당 순서대로 메타데이터 속성을 포함하는 $id $values JSON 개체 내에 중첩되어야 합니다.
    • 열거 가능한 형식의 경우 메타데이터 속성은 $values JSON 배열이어야 합니다.
    • 메타데이터 속성은 $values 열거 가능한 형식을 참조할 때만 유효합니다.

JSON이 잘 형성되지 않으면 throw JsonException 됩니다.

적용 대상