Dieser Artikel wurde maschinell übersetzt. Wenn Sie die englische Version des Artikels anzeigen möchten, aktivieren Sie das Kontrollkästchen Englisch. Sie können den englischen Text auch in einem Popupfenster anzeigen, indem Sie den Mauszeiger über den Text bewegen.
Übersetzung
Englisch

IDesignerSerializationManager-Schnittstelle

 

Veröffentlicht: Oktober 2016

Stellt eine Schnittstelle, die Entwurfszeitserialisierung verwaltet werden kann.

Namespace:   System.ComponentModel.Design.Serialization
Assembly:  System (in System.dll)

public interface IDesignerSerializationManager : IServiceProvider

NameBeschreibung
System_CAPS_pubpropertyContext

Ruft einen stapelbasierten, benutzerdefinierten Speicherbereich ab, der die Kommunikation zwischen Serialisierungsprogrammen erleichtert.

System_CAPS_pubpropertyProperties

Gibt die benutzerdefinierte Eigenschaften, die mit verfügbaren Serialisierungsprogrammen serialisiert werden können.

NameBeschreibung
System_CAPS_pubmethodAddSerializationProvider(IDesignerSerializationProvider)

Fügt dem Serialisierungs-Manager den angegebenen Serialisierungsprovider hinzu.

System_CAPS_pubmethodCreateInstance(Type, ICollection, String, Boolean)

Erstellt eine Instanz des angegebenen Typs und fügt sie einer Auflistung benannter Instanzen hinzu.

System_CAPS_pubmethodGetInstance(String)

Ruft eine Instanz eines erstellten Objekts mit dem angegebenen Namen ab oder null wenn das Objekt nicht vorhanden ist.

System_CAPS_pubmethodGetName(Object)

Ruft den Namen des angegebenen Objekts oder null wenn das Objekt keinen Namen hat.

System_CAPS_pubmethodGetSerializer(Type, Type)

Ruft ein Serialisierungsprogramm des angeforderten Typs für den angegebenen Objekttyp ab.

System_CAPS_pubmethodGetService(Type)

Ruft das Dienstobjekt des angegebenen Typs ab.(Geerbt von „IServiceProvider“.)

System_CAPS_pubmethodGetType(String)

Ruft einen Typ mit dem angegebenen Namen ab.

System_CAPS_pubmethodRemoveSerializationProvider(IDesignerSerializationProvider)

Entfernt einen benutzerdefinierten Serialisierungsprovider aus dem Serialisierungs-Manager.

System_CAPS_pubmethodReportError(Object)

Meldet einen Fehler bei der Serialisierung.

System_CAPS_pubmethodSetName(Object, String)

Legt den Namen des angegebenen vorhandenen Objekts fest.

NameBeschreibung
System_CAPS_pubeventResolveName

Tritt ein, wenn GetName den angegebenen Namen in der Namenstabelle des Serialisierungs-Managers nicht finden kann.

System_CAPS_pubeventSerializationComplete

Tritt ein, wenn die Serialisierung abgeschlossen ist.

Ein Designer kann nutzen IDesignerSerializationManager zum Zugreifen auf Dienste zum Verwalten von Prozessen der Entwurfszeitserialisierung nützlich. Beispielsweise können eine Klasse, die den Designer Serialisierungs-Manager implementiert diese Schnittstelle, Objekte erstellen, Typen suchen, Objekte identifiziert und die Serialisierung bestimmter Typen anzupassen.

Das folgende Beispiel veranschaulicht, wie Sie IDesignerSerializationManager zum Serialisieren und Deserialisieren von CodeDom-Anweisungen.

using System;
using System.CodeDom;
using System.ComponentModel;
using System.ComponentModel.Design;
using System.ComponentModel.Design.Serialization;
using System.Drawing;
using System.Windows.Forms;

namespace CodeDomSerializerSample
{
    internal class MyCodeDomSerializer : CodeDomSerializer {
        public override object Deserialize(IDesignerSerializationManager manager, object codeObject) {
            // This is how we associate the component with the serializer.
                CodeDomSerializer baseClassSerializer = (CodeDomSerializer)manager.
                GetSerializer(typeof(MyComponent).BaseType, typeof(CodeDomSerializer));

            /* This is the simplest case, in which the class just calls the base class
                to do the work. */
            return baseClassSerializer.Deserialize(manager, codeObject);
        }

        public override object Serialize(IDesignerSerializationManager manager, object value) {
            /* Associate the component with the serializer in the same manner as with
                Deserialize */
            CodeDomSerializer baseClassSerializer = (CodeDomSerializer)manager.
                GetSerializer(typeof(MyComponent).BaseType, typeof(CodeDomSerializer));

            object codeObject = baseClassSerializer.Serialize(manager, value);

            /* Anything could be in the codeObject.  This sample operates on a
                CodeStatementCollection. */
            if (codeObject is CodeStatementCollection) {
                CodeStatementCollection statements = (CodeStatementCollection)codeObject;

                // The code statement collection is valid, so add a comment.
                string commentText = "This comment was added to this object by a custom serializer.";
                CodeCommentStatement comment = new CodeCommentStatement(commentText);
                statements.Insert(0, comment);
            }
            return codeObject;
        }
    }

    [DesignerSerializer(typeof(MyCodeDomSerializer), typeof(CodeDomSerializer))]
    public class MyComponent : Component {
        private string localProperty = "Component Property Value";
        public string LocalProperty {
            get {
                return localProperty;
            }
            set {
                localProperty = value;
            }
        }
    }

}

.NET Framework
Verfügbar seit 1.1
Zurück zum Anfang
Anzeigen: