다음을 통해 공유


CodeDomSerializerBase.SerializeToExpression 메서드

정의

지정된 개체를 식으로 serialize합니다.

protected:
 System::CodeDom::CodeExpression ^ SerializeToExpression(System::ComponentModel::Design::Serialization::IDesignerSerializationManager ^ manager, System::Object ^ value);
protected System.CodeDom.CodeExpression SerializeToExpression(System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object value);
protected System.CodeDom.CodeExpression? SerializeToExpression(System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object? value);
member this.SerializeToExpression : System.ComponentModel.Design.Serialization.IDesignerSerializationManager * obj -> System.CodeDom.CodeExpression
Protected Function SerializeToExpression (manager As IDesignerSerializationManager, value As Object) As CodeExpression

매개 변수

manager
IDesignerSerializationManager

serialization에 사용할 대상입니다 IDesignerSerializationManager .

value
Object

serialize할 개체입니다. null일 수 있습니다.

반환

CodeExpression serialize할 수 있는 경우 value 개체입니다. 그렇지 않으면 null.

예외

managernull입니다.

설명

매개 변수는 value 기본 식이 반환되는 경우일 수 있습니다 null.

이 메서드는 SerializeToExpression 형식을 직렬화하는 데 다음 규칙을 사용합니다.

  1. 먼저 메서드를 GetExpression 호출하여 개체에 대한 식이 이미 만들어졌는지 확인합니다. 그렇다면 기존 식을 반환합니다.

  2. 그런 다음 개체의 serializer를 찾아 serialize하도록 요청합니다.

  3. 개체 직렬 변환기의 반환 값이 a CodeExpression이면 식이 반환됩니다.

  4. 직렬 변환기가 식을 추가했는지 확인하기 위해 GetExpression 마지막 호출을 만듭니다.

  5. 마지막으로 .null

식을 만들 수 없고 적합한 serializer를 찾을 수 없는 경우 serialization 관리자를 통해 오류가 보고됩니다. serializer를 찾았지만 식을 생성하지 못한 경우 오류가 보고되지 않습니다. 이 경우 serializer가 이미 오류를 보고했거나 개체를 serialize하려고 시도하지 않았다고 가정합니다.

serializer가 문 또는 문 컬렉션을 반환한 경우 해당 문은 삭제되지 않습니다. 메서드는 SerializeToExpression 먼저 컨텍스트 스택에서 찾고 StatementContext 문 컨텍스트 개체의 StatementCollection 속성에 문을 추가합니다. 문 컨텍스트가 없으면 메서드는 SerializeToExpression 컨텍스트에서 a CodeStatementCollection 를 찾고 해당 문에 추가합니다. 문을 추가할 위치를 찾을 수 없는 경우 오류가 생성됩니다.

메모

고유한 개체를 serialize할 SerializeToExpression 때 메서드 Serialize 를 호출하면 안 됩니다. 대신 호출해야 합니다 GetExpression. 반환 null하는 경우 고유한 식을 만들고 호출 SetExpression합니다. 그런 다음 나머지 serialization을 진행합니다.

적용 대상

추가 정보