Ejemplo n.º 1
0
        public static bool ResurrectObjectReference(IObjectReference objRef)
        {
            var disposedField = objRef.GetType().GetField("disposed", BindingFlags.NonPublic | BindingFlags.Instance);

            if (!(bool)disposedField.GetValue(objRef))
            {
                return(false);
            }
            disposedField.SetValue(objRef, false);
            GC.ReRegisterForFinalize(objRef);
            return(true);
        }
Ejemplo n.º 2
0
        public object GetRealObject(IObjectReference obj, string id)
        {
            object realObject = SurrogateDataContract.GetRealObject(obj, base.GetStreamingContext());

            if (realObject == null)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(XmlObjectSerializer.CreateSerializationException(System.Runtime.Serialization.SR.GetString("GetRealObjectReturnedNull", new object[] { DataContract.GetClrTypeFullName(obj.GetType()) })));
            }
            this.ReplaceDeserializedObject(id, obj, realObject);
            return(realObject);
        }