ReferenceHandler.Preserve 속성
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
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
속성 값
설명
Serialize에서:
- 복잡한 참조 형식을 작성할 때 serializer는 메타데이터 속성(
$id
및$values``$ref
) 내에서도 작성합니다. - 출력 JSON에는 모든 개체에 대한 추가
$id
속성이 포함되며, 모든 열거 가능한 형식에 대해 내보내는 JSON 배열은 및$values
속성을 포함하는$id
JSON 개체 내에 중첩됩니다. - ReferenceEquals(Object, Object) 는 개체가 동일한지 여부를 확인하는 데 사용됩니다.
- 개체가 이전에 직렬화된 개체와 동일하면 해당 개체의 식별자(
$ref
)에 대한 포인터($id
)가 대신 작성됩니다. - 값 형식에 대한 메타데이터 속성은 작성되지 않습니다.
- 복잡한 참조 형식을 작성할 때 serializer는 메타데이터 속성(
역직렬화:
- 중복된 참조 및 주기를 유지하는 데 사용되는 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 됩니다.