ISerializable の実装: 逆シリアル化時のコンストラクタ代替え関数

Namespace: FVIL
Assembly: FVILbasic (in FVILbasic.dll) Version: 3.1.0.0 (3.1.0.17)

Syntax

C#
protected virtual void _Deserialize(
	SerializationInfo info,
	StreamingContext context
)
Visual Basic
Protected Overridable Sub _Deserialize ( 
	info As SerializationInfo,
	context As StreamingContext
)

Parameters

info
Type: System.Runtime.Serialization..::..SerializationInfo
データを読み込む先の SerializationInfo
context
Type: System.Runtime.Serialization..::..StreamingContext
シリアル化先

Remarks

この関数は、逆シリアル化の過程で ISeralizable のシグネチャコンストラクタからコールされます。
派生クラスが逆シリアル化を実装する際は、下記の作業を行う必要があります。
1.シグネチャコンストラクタを実装する。
2.当関数をオーバーライドする。

Examples

下記は DPNT_T_ARRAY の実装内容です。

void DPNT_T_ARRAY::_Deserialize(SerializationInfo^ info, StreamingContext context)
{
	CFviObject::_Deserialize(info, context);
	
	for each(SerializationEntry^ entry in info)
	{
		if (entry->Name == _T("Data"))
		{
			cli::array<DPNT_T>^ data = safe_cast<cli::array<DPNT_T>^>(info->GetValue(_T("Data"), cli::array<DPNT_T>::typeid));
			CopyFrom(safe_cast<System::Collections::IEnumerable^>(data));
		}
	}
}

See Also