Auf Englisch lesen

Freigeben über


IDesignerSerializationManager Schnittstelle

Definition

Stellt eine Schnittstelle bereit, mit der die Serialisierung zur Entwurfszeit verwaltet werden kann.

C#
public interface IDesignerSerializationManager : IServiceProvider
Abgeleitet
Implementiert

Beispiele

Im folgenden Beispiel wird veranschaulicht, wie IDesignerSerializationManager Sie code DOM-Anweisungen serialisieren und deserialisieren.

C#
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;
            }
        }
    }
}

Hinweise

Ein Designer kann verwenden IDesignerSerializationManager , um auf Dienste zuzugreifen, die für die Verwaltung von Serialisierungsprozessen zur Entwurfszeit nützlich sind. Beispielsweise kann eine Klasse, die den Designer-Serialisierungs-Manager implementiert, diese Schnittstelle verwenden, um Objekte zu erstellen, Typen nachzuschlagen, Objekte zu identifizieren und die Serialisierung bestimmter Typen anzupassen.

Eigenschaften

Context

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

Properties

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

Methoden

AddSerializationProvider(IDesignerSerializationProvider)

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

CreateInstance(Type, ICollection, String, Boolean)

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

GetInstance(String)

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

GetName(Object)

Ruft den Namen des angegebenen Objekts ab oder null, wenn dem Objekt kein Name zugewiesen ist.

GetSerializer(Type, Type)

Ruft ein Serialisierungsprogramm vom angeforderten Typ für den angegebenen Objekttyp ab.

GetService(Type)

Ruft das Dienstobjekt des angegebenen Typs ab.

(Geerbt von IServiceProvider)
GetType(String)

Ruft einen Typ mit dem angegebenen Namen ab.

RemoveSerializationProvider(IDesignerSerializationProvider)

Entfernt einen benutzerdefinierten Serialisierungsprovider aus dem Serialisierungs-Manager.

ReportError(Object)

Meldet einen Fehler bei der Serialisierung.

SetName(Object, String)

Legt den Namen des angegebenen vorhandenen Objekts fest.

Ereignisse

ResolveName

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

SerializationComplete

Tritt ein, wenn die Serialisierung abgeschlossen ist.

Erweiterungsmethoden

GetKeyedService<T>(IServiceProvider, Object)

Ruft einen Dienst vom Typ T aus ab IServiceProvider.

GetKeyedServices(IServiceProvider, Type, Object)

Ruft eine Enumeration von Diensten vom Typ serviceType ab IServiceProvider.

GetKeyedServices<T>(IServiceProvider, Object)

Ruft eine Enumeration von Diensten vom Typ T ab IServiceProvider.

GetRequiredKeyedService(IServiceProvider, Type, Object)

Ruft einen Dienst vom Typ serviceType aus ab IServiceProvider.

GetRequiredKeyedService<T>(IServiceProvider, Object)

Ruft einen Dienst vom Typ T aus ab IServiceProvider.

CreateAsyncScope(IServiceProvider)

Erstellt eine neue AsyncServiceScope-Schnittstelle, die zum Auflösen von bereichsbezogenen Diensten verwendet werden kann.

CreateScope(IServiceProvider)

Erstellt eine neue IServiceScope-Schnittstelle, die zum Auflösen von bereichsbezogenen Diensten verwendet werden kann.

GetRequiredService(IServiceProvider, Type)

Ruft einen Dienst vom Typ serviceType aus der IServiceProvider-Schnittstelle ab.

GetRequiredService<T>(IServiceProvider)

Ruft einen Dienst vom Typ T aus der IServiceProvider-Schnittstelle ab.

GetService<T>(IServiceProvider)

Ruft einen Dienst vom Typ T aus der IServiceProvider-Schnittstelle ab.

GetServices(IServiceProvider, Type)

Ruft eine Enumeration von Diensten vom Typ serviceType aus der IServiceProvider-Schnittstelle ab.

GetServices<T>(IServiceProvider)

Ruft eine Enumeration von Diensten vom Typ T aus der IServiceProvider-Schnittstelle ab.

GetFakeLogCollector(IServiceProvider)

Ruft das Objekt ab, das Protokolldatensätze sammelt, die an die gefälschte Protokollierung gesendet wurden.

GetFakeRedactionCollector(IServiceProvider)

Ruft den gefälschten Redactorsammler instance aus dem Abhängigkeitsinjektionscontainer ab.

Gilt für:

Produkt Versionen
.NET Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 2.0, 2.1

Weitere Informationen