英語で読む

次の方法で共有


IDesignerSerializationManager インターフェイス

定義

デザイン時のシリアル化を管理するためのインターフェイスを提供します。

C#
public interface IDesignerSerializationManager : IServiceProvider
派生
実装

次の例は、 を使用 IDesignerSerializationManager して Code DOM ステートメントをシリアル化および逆シリアル化する方法を示しています。

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

注釈

デザイナーは、デザイン時のシリアル化プロセスの管理に役立つサービスにアクセスするために利用 IDesignerSerializationManager できます。 たとえば、デザイナーのシリアル化マネージャーを実装するクラスは、このインターフェイスを使用して、オブジェクトの作成、型の検索、オブジェクトの識別、特定の型のシリアル化のカスタマイズを行うことができます。

プロパティ

Context

シリアライザー間の通信に役立つスタック ベースのユーザー定義ストレージ エリアを取得します。

Properties

有効なシリアライザーを使用してシリアル化できるカスタム プロパティを示します。

メソッド

AddSerializationProvider(IDesignerSerializationProvider)

指定したシリアル化プロバイダーをシリアル化マネージャーに追加します。

CreateInstance(Type, ICollection, String, Boolean)

指定した型のインスタンスを作成し、作成したインスタンスを名前付きインスタンスのコレクションに追加します。

GetInstance(String)

指定した名前で作成されたオブジェクトのインスタンスを取得します。そのようなオブジェクトが存在しない場合は null を取得します。

GetName(Object)

指定したオブジェクトの名前を取得します。オブジェクトに名前がない場合は null を取得します。

GetSerializer(Type, Type)

指定したオブジェクト型に対応する、要求された型のシリアライザーを取得します。

GetService(Type)

指定した型のサービス オブジェクトを取得します。

(継承元 IServiceProvider)
GetType(String)

指定した名前の型を取得します。

RemoveSerializationProvider(IDesignerSerializationProvider)

カスタム シリアル化プロバイダーをシリアル化マネージャーから削除します。

ReportError(Object)

シリアル化時のエラーを報告します。

SetName(Object, String)

指定した既存のオブジェクトの名前を設定します。

イベント

ResolveName

GetName(Object) が、指定した名前をシリアル化マネージャーの名前テーブルで見つけることができない場合に発生します。

SerializationComplete

シリアル化が完了したときに発生します。

拡張メソッド

GetKeyedService<T>(IServiceProvider, Object)

から 型 T のサービスを取得します IServiceProvider

GetKeyedServices(IServiceProvider, Type, Object)

から 型 serviceType のサービスの列挙体を取得します IServiceProvider

GetKeyedServices<T>(IServiceProvider, Object)

から 型 T のサービスの列挙体を取得します IServiceProvider

GetRequiredKeyedService(IServiceProvider, Type, Object)

から 型 serviceType のサービスを取得します IServiceProvider

GetRequiredKeyedService<T>(IServiceProvider, Object)

から 型 T のサービスを取得します IServiceProvider

CreateAsyncScope(IServiceProvider)

スコープ サービスを解決するために使用できる新しい AsyncServiceScope を作成します。

CreateScope(IServiceProvider)

スコープ サービスを解決するために使用できる新しい IServiceScope を作成します。

GetRequiredService(IServiceProvider, Type)

IServiceProvider から serviceType 型のサービスを取得します。

GetRequiredService<T>(IServiceProvider)

IServiceProvider から T 型のサービスを取得します。

GetService<T>(IServiceProvider)

IServiceProvider から T 型のサービスを取得します。

GetServices(IServiceProvider, Type)

IServiceProvider から serviceType 型のサービスの列挙体を取得します。

GetServices<T>(IServiceProvider)

IServiceProvider から T 型のサービスの列挙体を取得します。

GetFakeLogCollector(IServiceProvider)

偽のロガーに送信されたログ レコードを収集する オブジェクトを取得します。

GetFakeRedactionCollector(IServiceProvider)

依存関係挿入コンテナーから偽の redactor コレクター インスタンスを取得します。

適用対象

製品 バージョン
.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

こちらもご覧ください