internal ObjectHolder(
string obj, long objID, SerializationInfo info, ISerializationSurrogate surrogate,
long idOfContainingObj, FieldInfo field, int[] arrayIndex)
{
Debug.Assert(objID >= 0, "objID>=0");
_object = obj; //May be null;
_id = objID;
_flags = 0;
_missingElementsRemaining = 0;
_missingDecendents = 0;
_dependentObjects = null;
_next = null;
_serInfo = info;
_surrogate = surrogate;
_markForFixupWhenAvailable = false;
if (idOfContainingObj != 0 && arrayIndex != null)
{
_valueFixup = new ValueTypeFixupInfo(idOfContainingObj, field, arrayIndex);
}
if (_valueFixup != null)
{
_flags |= REQUIRES_VALUETYPE_FIXUP;
}
}