System.Runtime.Serialization.ObjectManager.CompleteISerializableObject C# (CSharp) Method

CompleteISerializableObject() private method

Completes an object implementing ISerializable. This will involve calling that objects constructor which takes an instance of ISerializable and a StreamingContext.
private CompleteISerializableObject ( object obj, SerializationInfo info, StreamingContext context ) : void
obj object The object to be completed.
info SerializationInfo The SerializationInfo containing all info for obj.
context StreamingContext The streaming context in which the serialization is taking place.
return void
        internal void CompleteISerializableObject(object obj, SerializationInfo info, StreamingContext context)
        {
            if (obj == null)
            {
                throw new ArgumentNullException(nameof(obj));
            }
            if (!(obj is ISerializable))
            {
                throw new ArgumentException(SR.Serialization_NotISer);
            }

            ConstructorInfo constInfo = null;
            Type t = obj.GetType();
            try
            {
                constInfo = GetDeserializationConstructor(t);
            }
            catch (Exception e)
            {
                throw new SerializationException(SR.Format(SR.Serialization_ConstructorNotFound, t), e);
            }

            constInfo.Invoke(obj, new object[] { info, context });
        }