return true;
}
-#if NET_4_0
public void BindToName (string assemblyName, string typeName)
{
if (assemblyName != null)
if (typeName != null)
InstanceTypeName = typeName;
}
-#endif
public abstract bool RequiresTypes { get; }
}
StreamingContext _context;
FormatterAssemblyStyle _assemblyFormat;
FormatterTypeStyle _typeFormat;
-#if NET_4_0
SerializationBinder _binder;
-#endif
byte[] arrayBuffer;
int ArrayBufferLength = 4096;
SerializationObjectManager _manager;
_assemblyFormat = formatter.AssemblyFormat;
_typeFormat = formatter.TypeFormat;
_manager = new SerializationObjectManager (formatter.Context);
-#if NET_4_0
_binder = formatter.Binder;
-#endif
}
public void WriteObjectGraph (BinaryWriter writer, object obj, Header[] headers)
private void GetObjectData (object obj, out TypeMetadata metadata, out object data)
{
Type instanceType = obj.GetType();
-#if NET_4_0
string binderAssemblyName = null;
string binderTypeName = null;
if (_binder != null)
_binder.BindToName (instanceType, out binderAssemblyName, out binderTypeName);
-#endif
// Check if the formatter has a surrogate selector, if it does,
// check if the surrogate selector handles objects of the given type.
SerializationInfo info = new SerializationInfo (instanceType, new FormatterConverter ());
surrogate.GetObjectData (obj, info, _context);
metadata = new SerializableTypeMetadata (instanceType, info);
-#if NET_4_0
if (_binder != null)
metadata.BindToName (binderAssemblyName, binderTypeName);
-#endif
data = info;
return;
SerializationInfo info = new SerializationInfo (instanceType, new FormatterConverter ());
ser.GetObjectData (info, _context);
metadata = new SerializableTypeMetadata (instanceType, info);
-#if NET_4_0
if (_binder != null)
metadata.BindToName (binderAssemblyName, binderTypeName);
-#endif
data = info;
}
// Don't cache metadata info when the Context property is not null sice
// we can't control the number of possible contexts in this case
metadata = new MemberTypeMetadata (instanceType, _context);
-#if NET_4_0
if (_binder != null)
metadata.BindToName (binderAssemblyName, binderTypeName);
-#endif
return;
}
if (metadata == null) {
metadata = CreateMemberTypeMetadata (instanceType);
-#if NET_4_0
if (_binder != null)
metadata.BindToName (binderAssemblyName, binderTypeName);
-#endif
}
typesTable [instanceType] = metadata;