TypeCodeDomSerializer.Serialize Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Serializa a raiz do objeto, criando uma nova declaração de tipo que define a raiz.
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
Parâmetros
- manager
- IDesignerSerializationManager
O gerenciador de serialização a ser usado para serialização.
- root
- Object
O objeto a ser serializado.
- members
- ICollection
Coleção opcional de membros. Pode ser null
ou vazio.
Retornos
Um CodeTypeDeclaration que define o objeto raiz.
Exceções
manager
ou root
é null
.
Comentários
O Serialize método serializa o objeto raiz fornecido e a coleção opcional de membros para criar uma nova definição de tipo. Se a members
coleção contiver valores, esses valores serão serializados. Os próprios valores podem ser serializados como variáveis de membro ou variáveis locais. Essa determinação é feita pesquisando uma propriedade de extensor no objeto chamado GenerateMember
. Se true
, um membro será gerado. Caso contrário, uma variável local será gerada. Para sua conveniência, a members
coleção pode conter o objeto raiz. Nesse caso, o objeto raiz também não é adicionado como um membro ou variável local.
O nome do tipo retornado será obtido do nome do objeto raiz, se for um objeto nomeado. Caso contrário, um nome é fabricado a partir do nome de tipo simples da classe raiz.
A tabela a seguir mostra as tarefas executadas pela implementação padrão do Serialize método .
Tarefa | Descrição |
---|---|
Propagação de contexto | O contexto de serialização é inicializado com dados, incluindo o RootContext e CodeTypeDeclaration |
Serialização de membro | Em seguida, Serialize orienta todos os membros e chama SerializeToExpression. Como a serialização é feita de forma oportunista no SerializeToExpression, isso garante que a serialização não seja feita duas vezes. |
Serialização raiz | Em seguida, o objeto raiz é serializado e suas instruções são adicionadas à coleção de instruções. |
Integração de instruções | Depois que todos os objetos são serializados, o Serialize método ordena as instruções e as adiciona a um método retornado de GetInitializeMethod. Por fim, um construtor é fabricado que chama todos os métodos retornados de GetInitializeMethod. |
-
A tabela a seguir mostra os objetos que o Serialize método coloca na pilha de contexto.
Instância | Descrição |
---|---|
TypeCodeDomSerializer | Esse serializador. Derivar classes pode achar útil adicionar propriedades públicas a essa classe. |
CodeTypeDeclaration | O tipo que está sendo criado. A maioria dos objetos não precisa de acesso direto a isso. |
Aplica-se a
Confira também
- CodeDomSerializer
- IDesignerSerializationManager
- CodeDomProvider
- CodeTypeDeclaration
- Dynamic Source Code Generation and Compilation (Compilação e geração de código-fonte dinâmico)