DesignerSerializationManagerとは? わかりやすく解説

DesignerSerializationManager イベント


パブリック イベントパブリック イベント

  名前 説明
パブリック イベント SessionCreated セッションが作成されるときに発生します。
パブリック イベント SessionDisposed セッションが破棄されるときに発生します。
参照参照

関連項目

DesignerSerializationManager クラス
System.ComponentModel.Design.Serialization 名前空間
IDesignerSerializationManager
IDesignerHost インターフェイス
ContextStack クラス
IServiceProvider
BinaryFormatter

DesignerSerializationManager クラス

メモ : このクラスは、.NET Framework version 2.0 で新しく追加されたものです。

IDesignerSerializationManager インターフェイスの実装を提供します。

名前空間: System.ComponentModel.Design.Serialization
アセンブリ: System.Design (system.design.dll 内)
構文構文

Public Class DesignerSerializationManager
    Implements IDesignerSerializationManager, IServiceProvider
Dim instance As DesignerSerializationManager
public class DesignerSerializationManager :
 IDesignerSerializationManager, IServiceProvider
public ref class DesignerSerializationManager
 : IDesignerSerializationManager, IServiceProvider
public class DesignerSerializationManager implements
 IDesignerSerializationManager, IServiceProvider
public class DesignerSerializationManager implements
 IDesignerSerializationManager, IServiceProvider
解説解説

IDesignerSerializationManager インターフェイスは、シリアル化を制御するオブジェクトに対する、形式に依存しないインターフェイスとしてデザインされています。このインターフェイスは、基本的に、実際は逆シリアル化を実行するシリアライザにコンテキストとサービスを提供します。IDesignerSerializationManager は、オブジェクトの追跡を続けることによって逆シリアル化プロセスを支援します。これは、IDesignerHost インターフェイスに対する手法においても同様です。デザイナは、実際にはユーザー インターフェイス (UI: User Interface) を提供し、IDesignerHost は、さまざまなデザイナを結びつけて連動できるようにします。

DesignerSerializationManager クラスは、IDesignerSerializationManager を実装しています。このクラスは、BinaryFormatter のような実行時シリアライザと同様の、逆シリアル化の汎用的な形式を提供するようにデザインされています。

DesignerSerializationManager クラスでは、次の 3 つの目標を実現しています。

デザイン時のシリアル化は、実行時のオブジェクトのシリアル化と次の点で異なります。

これらの相違点から、デザイン時のシリアル化には、別のシリアル化モデルが適用されます。このモデルでは、シリアル化の対象となるデータ型ごとに個別のシリアライザ オブジェクトを利用します。各シリアライザは、問題全体に対してはわずかずつ有効です。これらのシリアライザは、すべて共通のシリアル化マネージャを通じて調整されます。シリアル化マネージャは、これら異なるシリアライザ間で状態を維持する必要があります。一例として、次のクラスを考えてみます。

Public Class SampleObject
   Private stringValue As String
 = Nothing
   Private intValue As Integer
 = Integer.MinValue
   
   
   Public Property StringProperty() As
 String
      Get
         Return Me.stringValue
      End Get 
      Set
         Me.stringValue = value
      End Set
   End Property 
   
   Public Property IntProperty() As
 Integer
      Get
         Return Me.intValue
      End Get 
      Set
         Me.intValue = value
      End Set
   End Property
End Class 
public class SampleObject
{
    private string stringValue = null;
    private int intValue = int.MinValue;

    public string StringProperty 
    { 
        get { return this.stringValue;
 }

        set { this.stringValue = value; }
    }

    public int IntProperty 
    {
        get { return this.intValue;
 }

        set{ this.intValue = value; }
    }
}

このクラスのインスタンスは、SampleObject 用、文字列用、整数用の 3 種類のシリアライザを利用します。SampleObject はシリアル化グラフのルートであるため、SampleObject のシリアライザは、ルート シリアライザと呼ばれます。さらに複雑なオブジェクト グラフも作成できます。たとえば、SampleObject が次のように変更された場合に、何が起こるかを考えてみます。

Public Class SampleObject
   Private stringValue As String
 = Nothing
   Private intValue As Integer
 = Integer.MinValue
   Private childValue As SampleObject = Nothing
   
   
   Public Property StringProperty() As
 String
      Get
         Return Me.stringValue
      End Get 
      Set
         Me.stringValue = value
      End Set
   End Property 
   
   Public Property IntProperty() As
 Integer
      Get
         Return Me.intValue
      End Get 
      Set
         Me.intValue = value
      End Set
   End Property 
   
   Public Property Child() As
 SampleObject
      Get
         Return Me.childValue
      End Get 
      Set
         Me.childValue = value
      End Set
   End Property
End Class 
public class SampleObject
{
    private string stringValue = null;
    private int intValue = int.MinValue;
    private SampleObject childValue = null;

    public string StringProperty
    {
        get { return this.stringValue;
 }

        set { this.stringValue = value; }
    }

    public int IntProperty
    {
        get { return this.intValue;
 }

        set { this.intValue = value; }
    }

    public SampleObject Child
    {
        get { return this.childValue;
 }

        set { this.childValue = value; }
    }
}

これにより、SampleObject はそれ自体の別のインスタンスである子を持つことができます。オブジェクト グラフに次のコードを記述します。

Class Program
   
   Public Overloads Shared
 Sub Main()
      Main(System.Environment.GetCommandLineArgs())
   End Sub
   
   Overloads Shared Sub
 Main(args() As String)
      Dim root As New SampleObject()
      
      Dim currentObject As SampleObject = root
      
      Dim i As Integer
      For i = 0 To 9
         Dim o As New SampleObject()
         
         currentObject.Child = o
         
         currentObject = o
      Next i
   End Sub 
End Class
class Program
{
    static void Main(string[]
 args)
    {
        SampleObject root = new SampleObject();

        SampleObject currentObject = root;

        for (int i = 0; i < 10; i++)
        {
            SampleObject o = new SampleObject();

            currentObject.Child = o;

            currentObject = o;
        }
    }
}

root をシリアル化するときには、ルート シリアライザと、子 SampleObject 用、int 用、string 用の各シリアライザの 4 つのシリアライザが使用されます。シリアライザは型に基づいてキャッシュされるため、SampleObject の各インスタンス用にシリアライザを作成する必要はありません。

DesignerSerializationManager クラスは、シリアル化セッションの概念に基づいています。セッションでは、さまざまなシリアライザがアクセスできる状態を維持します。セッションが破棄されると、この状態も破棄されます。これにより、シリアライザをほとんどの場合状態のないままにしておけます。また、破損した状態にあるシリアライザの削除にも役立ちます。セッション内およびセッション間で、状態がどのように管理されるかを次の表に示します。

グローバル状態

セッション保有の状態

この状態はセッションが保有し、セッションが破棄されるとこの状態も破棄されます。したがって、シリアル化マネージャにアクティブなセッションがない場合、この状態を操作するプロパティまたはメソッドにアクセスすると、例外がスローされます。

オブジェクト

使い方

ResolveName イベント

ResolveName イベントは、名前の解決を提供するためにシリアライザによって接続されます。セッションが終了すると、すべてのハンドラはこのイベントから接続解除されます。

SerializationComplete イベント

SerializationComplete イベントは、セッションが破棄される直前に発生します。この後、すべてのハンドラがこのイベントから接続解除されます。

名前テーブル

シリアル化マネージャは、オブジェクトとその名前を対応付けるテーブルを保持しています。シリアライザは、識別を容易にするために、オブジェクトに名前を付けることができます。セッションが終了すると、この名前テーブルは消去されます。

シリアライザのキャッシュ

シリアル化マネージャは、提供を要求されているシリアライザのキャッシュを保持しています。セッションが終了すると、このキャッシュは消去されます。パブリック メソッド GetSerializer は、いつでも安全に呼び出すことができますが、その値がキャッシュされるのは、セッション内から呼び出した場合だけです。

コンテキスト スタック

シリアル化マネージャは、コンテキスト スタックと呼ばれるオブジェクトを保持しています。このオブジェクトには、Context プロパティを使用してアクセスできます。シリアライザはこのスタックを使用して、他のシリアライザで使用できる追加情報を格納します。たとえば、プロパティ値をシリアル化するシリアライザは、シリアル化する値を要求する前に、シリアル化スタックでプロパティ名をプッシュできます。セッションが終了すると、このスタックは消去されます。

エラー リスト

シリアル化マネージャは、シリアル化の実行時に発生したエラーのリストを保持しています。このリストには、Errors プロパティからアクセスします。セッションが終了すると、エラー リストは消去されます。各セッションの合間に Errors プロパティにアクセスすると、例外が発生します。

継承階層継承階層
System.Object
  System.ComponentModel.Design.Serialization.DesignerSerializationManager
スレッド セーフスレッド セーフ
この型の public static (Visual Basic では Shared) メンバはすべて、スレッド セーフです。インスタンス メンバの場合は、スレッド セーフであるとは限りません。
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DesignerSerializationManager メンバ
System.ComponentModel.Design.Serialization 名前空間
IDesignerSerializationManager
IDesignerHost インターフェイス
ContextStack クラス
IServiceProvider
BinaryFormatter

DesignerSerializationManager コンストラクタ ()

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

DesignerSerializationManager クラスの新しいインスタンスを初期化します。

名前空間: System.ComponentModel.Design.Serialization
アセンブリ: System.Design (system.design.dll 内)
構文構文

Dim instance As New DesignerSerializationManager
public DesignerSerializationManager ()
public:
DesignerSerializationManager ()
public DesignerSerializationManager ()
public function DesignerSerializationManager
 ()
解説解説

このコンストラクタは、PreserveNames プロパティと ValidateRecycledTypes プロパティに true を設定します。

.NET Framework のセキュリティ.NET Framework のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DesignerSerializationManager クラス
DesignerSerializationManager メンバ
System.ComponentModel.Design.Serialization 名前空間
PreserveNames
ValidateRecycledTypes

DesignerSerializationManager コンストラクタ (IServiceProvider)

メモ : このコンストラクタは、.NET Framework version 2.0 で新しく追加されたものです。

指定したサービス プロバイダで DesignerSerializationManager クラスの新しいインスタンスを初期化します。

名前空間: System.ComponentModel.Design.Serialization
アセンブリ: System.Design (system.design.dll 内)
構文構文

Public Sub New ( _
    provider As IServiceProvider _
)
Dim provider As IServiceProvider

Dim instance As New DesignerSerializationManager(provider)
public DesignerSerializationManager (
    IServiceProvider provider
)
public:
DesignerSerializationManager (
    IServiceProvider^ provider
)
public DesignerSerializationManager (
    IServiceProvider provider
)
public function DesignerSerializationManager
 (
    provider : IServiceProvider
)

パラメータ

provider

IServiceProvider。

例外例外
例外の種類条件

ArgumentNullException

provider が null 参照 (Visual Basic では Nothing) です。

解説解説
.NET Framework のセキュリティ.NET Framework のセキュリティ
プラットフォームプラットフォーム
バージョン情報バージョン情報
参照参照
関連項目
DesignerSerializationManager クラス
DesignerSerializationManager メンバ
System.ComponentModel.Design.Serialization 名前空間
IServiceProvider
PreserveNames
ValidateRecycledTypes

DesignerSerializationManager コンストラクタ

DesignerSerializationManager クラスの新しいインスタンスを初期化します。
オーバーロードの一覧オーバーロードの一覧

名前 説明
DesignerSerializationManager () DesignerSerializationManager クラスの新しいインスタンスを初期化します。
DesignerSerializationManager (IServiceProvider) 指定したサービス プロバイダで DesignerSerializationManager クラスの新しいインスタンスを初期化します。
参照参照

関連項目

DesignerSerializationManager クラス
DesignerSerializationManager メンバ
System.ComponentModel.Design.Serialization 名前空間
PreserveNames
ValidateRecycledTypes

DesignerSerializationManager プロパティ


パブリック プロパティパブリック プロパティ

  名前 説明
パブリック プロパティ Container このシリアル化マネージャのコンテナを取得または設定します。
パブリック プロパティ Errors シリアル化または逆シリアル化の実行時に発生したエラーのリストを取得します。
パブリック プロパティ PreserveNames CreateInstance メソッドが、コンテナに指定した名前が存在することをチェックする必要があるかどうかを示す値を取得または設定します。
パブリック プロパティ PropertyProvider シリアル化マネージャの Properties プロパティにプロパティを提供する際に使用する必要のあるオブジェクトを取得します。
パブリック プロパティ RecycleInstances CreateInstance が型の新しいインスタンスを常に作成するかどうかを示すフラグを取得または設定します。
パブリック プロパティ ValidateRecycledTypes CreateInstance メソッドが、一致する名前が同じ型を参照していることを検査するかどうかを示すフラグを取得または設定します。
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.Context このシリアル化セッションのコンテキスト スタックを取得します。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.Properties Properties プロパティを実装します。
参照参照

関連項目

DesignerSerializationManager クラス
System.ComponentModel.Design.Serialization 名前空間
IDesignerSerializationManager
IDesignerHost インターフェイス
ContextStack クラス
IServiceProvider
BinaryFormatter

DesignerSerializationManager メソッド


パブリック メソッドパブリック メソッド

プロテクト メソッドプロテクト メソッド
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.AddSerializationProvider シリアル化マネージャにカスタムのシリアル化プロバイダを追加します。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.CreateInstance CreateInstance メソッドを実装します。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.GetInstance 指定した名前の作成済みオブジェクトのインスタンスを取得します。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.GetName 指定したオブジェクトの名前を取得します。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.GetSerializer 指定したオブジェクト型に対応する、要求された型のシリアライザを取得します。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.GetType 指定した名前の型を取得します。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.RemoveSerializationProvider 以前に追加したシリアル化プロバイダを削除します。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.ReportError シリアル化における回復可能なエラーの報告に使用します。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.SetName 指定したオブジェクトの名前を設定します。
インターフェイスの明示的な実装 System.IServiceProvider.GetService このメンバの説明については、GetService メソッドに関するトピックを参照してください。
参照参照

関連項目

DesignerSerializationManager クラス
System.ComponentModel.Design.Serialization 名前空間
IDesignerSerializationManager
IDesignerHost インターフェイス
ContextStack クラス
IServiceProvider
BinaryFormatter

DesignerSerializationManager メンバ

IDesignerSerializationManager インターフェイスの実装を提供します。

DesignerSerializationManager データ型で公開されるメンバを以下の表に示します。


パブリック コンストラクタパブリック コンストラクタ
  名前 説明
パブリック メソッド DesignerSerializationManager オーバーロードされます。 DesignerSerializationManager クラスの新しいインスタンスを初期化します。
パブリック プロパティパブリック プロパティ
  名前 説明
パブリック プロパティ Container このシリアル化マネージャのコンテナを取得または設定します。
パブリック プロパティ Errors シリアル化または逆シリアル化の実行時に発生したエラーのリストを取得します。
パブリック プロパティ PreserveNames CreateInstance メソッドが、コンテナに指定した名前が存在することをチェックする必要があるかどうかを示す値を取得または設定します。
パブリック プロパティ PropertyProvider シリアル化マネージャの Properties プロパティにプロパティを提供する際に使用する必要のあるオブジェクトを取得します。
パブリック プロパティ RecycleInstances CreateInstance が型の新しいインスタンスを常に作成するかどうかを示すフラグを取得または設定します。
パブリック プロパティ ValidateRecycledTypes CreateInstance メソッドが、一致する名前が同じ型を参照していることを検査するかどうかを示すフラグを取得または設定します。
パブリック メソッドパブリック メソッド
プロテクト メソッドプロテクト メソッド
パブリック イベントパブリック イベント
  名前 説明
パブリック イベント SessionCreated セッションが作成されるときに発生します。
パブリック イベント SessionDisposed セッションが破棄されるときに発生します。
明示的インターフェイスの実装明示的インターフェイスの実装
  名前 説明
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.AddSerializationProvider シリアル化マネージャにカスタムのシリアル化プロバイダを追加します。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.CreateInstance CreateInstance メソッドを実装します。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.GetInstance 指定した名前の作成済みオブジェクトのインスタンスを取得します。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.GetName 指定したオブジェクトの名前を取得します。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.GetSerializer 指定したオブジェクト型に対応する、要求された型のシリアライザを取得します。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.GetType 指定した名前の型を取得します。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.RemoveSerializationProvider 以前に追加したシリアル化プロバイダを削除します。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.ReportError シリアル化における回復可能なエラーの報告に使用します。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.SetName 指定したオブジェクトの名前を設定します。
インターフェイスの明示的な実装 System.IServiceProvider.GetService このメンバの説明については、GetService メソッドに関するトピックを参照してください。
インターフェイスの明示的な実装 System.ComponentModel.Design.Serialization.IDesignerSerializationManager.SerializationComplete  
参照参照

関連項目

DesignerSerializationManager クラス
System.ComponentModel.Design.Serialization 名前空間
IDesignerSerializationManager
IDesignerHost インターフェイス
ContextStack クラス
IServiceProvider
BinaryFormatter



英和和英テキスト翻訳

英語⇒日本語日本語⇒英語

辞書ショートカット

すべての辞書の索引

「DesignerSerializationManager」の関連用語

DesignerSerializationManagerのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



DesignerSerializationManagerのページの著作権

   
日本マイクロソフト株式会社日本マイクロソフト株式会社
© 2026 Microsoft.All rights reserved.

©2026 GRAS Group, Inc.RSS