コンパクト シリアル化の使用方法

なぜコンパクトシリアル化なのか?

これは、パフォーマンスを向上させるためにシリアル化されたオブジェクトのコンパクトな形式を生成するプロセスであり、その結果、ネットワーク接続が高速化されます。 名前が示すように、コンパクト シリアル化ファイルはデータとプロセスの形式がコンパクトです。 コンパクトなシリアル化の背後にある考え方は、すべての「既知の型」 (既知の型はフレームワークに登録されている型です) にフレームワークによって一意の 2 バイトの型ハンドルが割り当てられ、これによりデシリアライザーが「既知の型」を一意に識別できるようにするというものです。 。

たとえば、フレームワークがSystem.Int0にハンドル32を割り当てたとします。 次に、シリアライザーは2バイトのハンドルに続いて4バイトのオブジェクト値をストリームに書き込みます。 デシリアライザーはハンドルを読み取り、オブジェクトタイプを把握してから、オブジェクトを作成してその値を入力します。 一方、ネイティブシリアル化は、オブジェクトデータを使用して完全な型情報を書き込みます。 NCache これらのネイティブ滅菌の問題は、次の方法で洗練されて解決されています。

  • ここで、シリアル化されたオブジェクトには、完全な型情報とアセンブリが含まれていません。 これには、オブジェクト値と一意の 2 バイト ハンドルのみが含まれます。 この一意の 2 バイト ハンドルは、オブジェクトの逆シリアル化中に型の詳細を一意に識別するための参照として使用されます。 このようにしてオブジェクトのサイズが小さくなります
  • コンパクトなシリアル化によりリフレクションも回避され、オーバーヘッドも削減されます。
  • 上記 XNUMX つの機能により IO 操作が軽減されます
  • オブジェクトのサイズが小さくなると、自動的にネットワークトリップが速くなり、最終的にはコストが削減されます。
  • オブジェクトのサイズが小さく、ネットワーク トラフィックが高速であるため、アプリケーションのパフォーマンスが向上します。

コンパクト シリアル化を使用するには、コンパクト シリアル化可能な型でデフォルトのパブリック コンストラクター (パラメーターなし) を定義し、その型を で登録する必要があります。 NCache マネージャー。 NCache カスタム ジェネリック タイプをサポートするようになりました。 任意の数の引数を持つすべてのジェネリック型は、コンパクトなシリアル化を通じてシリアル化できます。 クライアントが UI を通じてジェネリック型とそのパラメーターを追加したくない場合は、IGenericTypes クラスを通じて追加するオプションがあります。

コンパクト シリアル化の使用方法?

Compact Serializable 型を使用するには NCache キャッシュを設定する NCache Manager を使用してコンパクトなシリアル化可能な型を登録します。 NCache.

ステップ 1: コンパクトなシリアル化可能型の登録:

タイプを XNUMX つずつ登録できます。 「タイプを追加」 ボタン。 構成されたキャッシュにタイプを登録するには、次の手順を実行します。

  • キャッシュが実行中の場合は停止します。
  • セットアップボタンをクリックすると、セットアップが開始されます 「コンパクト連載」 タブをクリックすると、次の画面が開きます。
コンパクトなシリアル化可能な型の登録
  • クリック 「タイプを追加」 ボタン。 A 「コンパクトなクラスを選択」 ダイアログが表示されます。
  • をクリックして、コンパクト タイプを含むアセンブリ ファイルを参照します。 'ブラウズ' 図のようなボタン。
  • ロードされたクラスのリストからキャッシュに登録するクラスを選択します。
  • イベント 「クラスを追加」 ボタンをクリックして、選択したクラスのリストにクラスを追加します。
  • クリック 'OK'
シリアル化におけるコンパクトなクラス
  • 新しく追加されたタイプが、 「コンパクト連載」 タブには、コンパクト タイプとプラットフォームの情報が表示されます。
  • '取り除く' ボタンを押すと、選択したタイプを登録済みタイプのリストから削除します。
コンパクト シリアル化の使用方法
  • これにより、追加されたすべてのタイプが表示されます。 特定の型を選択してクリックすることで、ジェネリック型を使用して引数を追加できるようになりました。 '追加'

ステップ 2: ジェネリック型ハンドラーを使用したジェネリック コンパクト型の登録

これは、「ジェネリック型ハンドラー」を通じてジェネリックコンパクト型を登録するもう XNUMX つの方法です。 ジェネリック タイプ ハンドラーを使用すると、インターフェイスを実装することで、すべてのジェネリック タイプを一度に追加できます。 これにより、時間と労力が節約されます。 これのサンプルコードを次に示します。

public class CustomGenericType <T,K,V>         {           }

public class SetGenerics: IGenericTypeProvider
	{ 
	Type[] types = new Type[6]; 
        
	#region IGenericTypeProvider  Members 
	Type[] IGenericTypeProvider.GetGenericTypes()
		{ 
		  types[0]=typeof(Dictionary<string, Customer>);
		  types[1]=typeof(List<int>);  
		  types[2]=typeof(CustomGenericType<Employee, Product, Customer>);
		  types[3]=typeof(CustomGenericType<Employee, Product, int>); 
		  types[4]=typeof(CustomGenericType<Employee, string, byte>);
		  types[5]=typeof(CustomGenericType<string, Customer, bool>);
		  return types;
		}
	#endregion
	}

タイプを登録するには、次の手順に従います。

  • クリック 「ジェネリック型ハンドラー」 ボタン。 A 「コンパクトなクラスを選択」 ダイアログボックスが表示されます。
  • をクリックして、このインターフェイスを実装し、コンパクト型を含むアセンブリ ファイルを参照します。 'ブラウズ' 図のようなボタン。
汎用コンパクト型の登録
  • クリック 'わかった' ボタン。 以下に示すように、追加されたすべてのタイプがリストされます。
コンパクトなシリアル化フレームワーク

次はどうする?

お問い合わせ(英語)

電話
©著作権 Alachisoft 2002 - . All rights reserved. NCache はダイヤテック株式会社の登録商標です。