CodeDomSerializerBase.SerializeToExpression(IDesignerSerializationManager, Object) Yöntem

Tanım

Verilen nesneyi bir ifadeye dizleştirir.Serializes the given object into an expression.

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);
member this.SerializeToExpression : System.ComponentModel.Design.Serialization.IDesignerSerializationManager * obj -> System.CodeDom.CodeExpression
Protected Function SerializeToExpression (manager As IDesignerSerializationManager, value As Object) As CodeExpression

Parametreler

manager
IDesignerSerializationManager

IDesignerSerializationManagerSerileştirme için kullanılacak.The IDesignerSerializationManager to use for serialization.

value
Object

Seri hale getirilecek nesne.The object to serialize. Olabilir null .Can be null.

Döndürülenler

CodeExpression

CodeExpressionSeri hale getirilebilir bir nesne value ; Aksi takdirde, null .A CodeExpression object if value can be serialized; otherwise, null.

Özel durumlar

manager, null değeridir.manager is null.

Açıklamalar

valueParametresi olabilir null , bu durumda temel bir ifade döndürülür.The value parameter can be null, in which case a primitive expression will be returned.

SerializeToExpressionYöntemi, türleri serileştirmek için aşağıdaki kuralları kullanır:The SerializeToExpression method uses the following rules for serializing types:

  1. Önce GetExpression nesne için bir ifadenin oluşturulmuş olup olmadığını görmek için yöntemini çağırır.It first calls the GetExpression method to see if an expression has already been created for the object. Varsa, varolan ifadeyi döndürür.If so, it returns the existing expression.

  2. Ardından nesnenin seri hale getiricisini bulur ve serileştirmek isteyip istemediğinizi sorar.It then locates the object's serializer, and asks it to serialize.

  3. Nesnenin seri hale getiricinin dönüş değeri bir ise CodeExpression , ifade döndürülür.If the return value of the object's serializer is a CodeExpression, the expression is returned.

  4. GetExpressionSeri hale getiricinin bir ifade eklediğine bakmak için son bir çağrı yapar.It makes one last call to GetExpression to see if the serializer added an expression.

  5. Son olarak, döndürür null .Finally, it returns null.

Hiçbir ifade oluşturuoluşturulamadığı ve uygun seri hale getirici bulunamadığı takdirde, serileştirme Yöneticisi aracılığıyla bir hata bildirilir.If no expression could be created and no suitable serializer could be found, an error will be reported through the serialization manager. Serileştirici bulunursa ancak bir ifade üretemedi bir hata bildirilmeyecektir.No error will be reported if a serializer was found but it failed to produce an expression. Bu durumda, seri hale getirici zaten hatayı rapor ettiği veya nesneyi serileştirmeyen olduğu varsayılır.In this case, it is assumed that the serializer either already reported the error or it did not attempt to serialize the object.

Seri hale getirici bir deyimi veya bir deyim koleksiyonunu döndürmediğinde, bu deyimler atılır.If the serializer returned a statement or a collection of statements, those statements will not be discarded. SerializeToExpressionYöntemi ilk olarak StatementContext bağlam yığınına bakar ve deyim bağlam nesnesinin özelliğine deyimler ekler StatementCollection .The SerializeToExpression method will first look for a StatementContext on the context stack and add statements to the statement context object's StatementCollection property. Deyim bağlamı yoksa, SerializeToExpression yöntemi bir için bağlamına bakar CodeStatementCollection ve deyimleri buraya ekler.If there is no statement context, the SerializeToExpression method will look in the context for a CodeStatementCollection and add the statements there. Deyimleri eklemek için bir yer bulunamadıysanız bir hata oluşturulur.If no place can be found to add the statements, an error will be generated.

Not

SerializeToExpression Serialize Kendi nesneniz serileştirilirken içindeki yöntemini çağırmamalıdır.You should not call the SerializeToExpression method within Serialize when serializing your own object. Bunun yerine, öğesini çağırmanız gerekir GetExpression .Instead, you should call GetExpression. Döndürürse null , kendi ifadenizi oluşturun ve çağırın SetExpression .If it returns null, create your own expression and call SetExpression. Ardından, serileştirmenin geri kalanı ile devam edin.Then proceed with the rest of your serialization.

Şunlara uygulanır

Ayrıca bkz.