다음을 통해 공유


TypeCodeDomSerializer.Serialize 메서드

정의

루트를 정의하는 새로운 형식 선언을 만들어 개체 루트를 serialize합니다.

public:
 virtual System::CodeDom::CodeTypeDeclaration ^ Serialize(System::ComponentModel::Design::Serialization::IDesignerSerializationManager ^ manager, System::Object ^ root, System::Collections::ICollection ^ members);
public virtual System.CodeDom.CodeTypeDeclaration Serialize (System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object root, System.Collections.ICollection members);
public virtual System.CodeDom.CodeTypeDeclaration Serialize (System.ComponentModel.Design.Serialization.IDesignerSerializationManager manager, object root, System.Collections.ICollection? members);
abstract member Serialize : System.ComponentModel.Design.Serialization.IDesignerSerializationManager * obj * System.Collections.ICollection -> System.CodeDom.CodeTypeDeclaration
override this.Serialize : System.ComponentModel.Design.Serialization.IDesignerSerializationManager * obj * System.Collections.ICollection -> System.CodeDom.CodeTypeDeclaration
Public Overridable Function Serialize (manager As IDesignerSerializationManager, root As Object, members As ICollection) As CodeTypeDeclaration

매개 변수

manager
IDesignerSerializationManager

serialization에 사용할 serialization 관리자입니다.

root
Object

serialize할 개체입니다.

members
ICollection

멤버의 선택적 컬렉션입니다. null이거나 비어 있을 수 있습니다.

반환

루트 개체를 정의하는 CodeTypeDeclaration입니다.

예외

manager 또는 rootnull인 경우

설명

Serialize 메서드는 지정 된 루트 개체와 새 형식 정의를 만들려면 멤버의 선택적 컬렉션을 serialize 합니다. 경우는 members 값을 포함 하는 컬렉션, 이러한 값은 직렬화 됩니다. 값 자체 멤버 변수 또는 지역 변수도 serialize 될 수 있습니다. 호출 된 개체에 확장 속성을 검색 하 여이 결정이 이루어집니다 GenerateMember합니다. 경우 true, 멤버 생성 됩니다. 그렇지 않은 경우 로컬 변수 생성 됩니다. 편의 위해는 members 컬렉션 루트 개체를 포함할 수 있습니다. 이 경우 루트 개체 멤버 또는 로컬 변수로 추가 되지 않습니다.

명명 된 개체를 마치는 반환 된 형식의 이름은 루트 개체의 이름에서 가져옵니다. 그렇지 않은 경우 이름을 루트 클래스의 단순 형식 이름에서 만들어집니다.

다음 표에서 기본 구현에 의해 수행 되는 작업은 Serialize 메서드.

작업 설명
상황에 맞는 시드 포함 하 여 데이터와 serialization 컨텍스트가 초기화 된 RootContextCodeTypeDeclaration
멤버 직렬화 그런 다음, Serialize 의 모든 멤버 및 호출에서는 SerializeToExpression합니다. Serialization에 선택적으로 수행 되므로 SerializeToExpression, 이렇게 하면 serialization 두 번 수행 되지 않습니다.
루트 Serialization 다음으로, 루트 개체 직렬화 되 고 해당 문이 문 컬렉션에 추가 됩니다.
문 통합 모든 개체가 serialize 되 면 후 합니다 Serialize 문을 정렬 하 여 메서드와에서 반환 되는 메서드를 추가 합니다 GetInitializeMethod합니다. 모든에서 반환 된 메서드를 호출 하는 생성자가 마지막으로, 만들어집니다 GetInitializeMethod합니다.

-

다음 표에서 개체는 Serialize 메서드 컨텍스트 스택에 배치 합니다.

인스턴스 Description
TypeCodeDomSerializer 이 직렬 변환기입니다. 클래스를 파생 시키는 경우가 있을 수 있습니다이 클래스에 public 속성을 추가 하는 데 유용 합니다.
CodeTypeDeclaration 생성 되는 형식입니다. 대부분의 개체에이에 대 한 직접 액세스를 사용할 필요가 없습니다.

적용 대상

추가 정보