예제 #1
0
            public object SetObjectData(object obj, System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context, System.Runtime.Serialization.ISurrogateSelector selector)
            {
                AltaxoDocument s = (AltaxoDocument)obj;

                s.m_DataSet = (Altaxo.Data.DataTableCollection)info.GetValue("DataTableCollection", typeof(Altaxo.Data.DataTableCollection));
                // s.tstObj    = (AltaxoTestObject02)info.GetValue("TstObj",typeof(AltaxoTestObject02));
                //s.m_Worksheets = (System.Collections.ArrayList)info.GetValue("Worksheets",typeof(System.Collections.ArrayList));
                //  s.m_GraphForms = (System.Collections.ArrayList)info.GetValue("GraphForms",typeof(System.Collections.ArrayList));
                s.m_IsDirty = false;
                return(s);
            }
 public void ChainSelector(System.Runtime.Serialization.ISurrogateSelector selector)
 {
     throw new NotSupportedException();
 }
        public object SetObjectData(object obj, System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context, System.Runtime.Serialization.ISurrogateSelector selector)
        {
            _context.EnterObject(obj, info);

            Type        type    = obj.GetType();
            TypeMapping mapping = _context.GetTypeMapping(type);

            IObjectInitializer initializer = mapping.Initializer;

            if (null != initializer)
            {
                initializer.InitializeObject(_context);
            }
            else
            {
                DefaultObjectInitializer.Default.InitializeObject(_context);
            }

            _context.LeaveObject();

            return(null);
        }
 void ISurrogateSelector.ChainSelector(System.Runtime.Serialization.ISurrogateSelector selector)
 {
     throw new NotImplementedException("ChainSelector not supported!");
 }
        public System.Runtime.Serialization.ISerializationSurrogate GetSurrogate(System.Type type, System.Runtime.Serialization.StreamingContext context, out System.Runtime.Serialization.ISurrogateSelector selector)
        {
            selector = this;

            if (_context.HasInitializers(type))
            {
                return(this);
            }

            return(null);
        }
        object System.Runtime.Serialization.ISerializationSurrogate.SetObjectData(object obj, System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context, System.Runtime.Serialization.ISurrogateSelector selector)
        {
            Type objectType = obj.GetType();

            foreach (SerializationEntry entry in info)
            {
                /* FIX: Rutger M. Dijkstra ([email protected])
                 * Search ancestor classes for qualified entries so don't
                 * miss out on inherited private fields.
                 */
                FieldInfo field = FindField(objectType, entry.Name);
                if (field == null)
                {
                    continue;
                }

                object value = entry.Value;
                if (null != value)
                {
                    if (!field.FieldType.IsInstanceOfType(value))
                    {
                        value = Convert.ChangeType(value, field.FieldType);
                    }
                }
                field.SetValue(obj, value);
            }
            return(null);
        }
 System.Runtime.Serialization.ISerializationSurrogate ISurrogateSelector.GetSurrogate(System.Type type, System.Runtime.Serialization.StreamingContext context, out System.Runtime.Serialization.ISurrogateSelector selector)
 {
     /* FIX: Rutger M. Dijkstra ([email protected])
      * typeof(foo[]).Assembly == typeof(foo).Assembly
      * Obviously nonsense, but that's how it is.
      */
     if (!type.IsArray && type.Assembly == _assemblyToMigrate)
     {
         selector = this;
         return(this);
     }
     selector = null;
     return(null);
 }
        public object SetObjectData(object obj, System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context, System.Runtime.Serialization.ISurrogateSelector selector)
        {
            _unitySerialInfo.StartContext(info, context);

            if (obj is IUnitySerializable)
            {
                (obj as IUnitySerializable).SetObjectData(_unitySerialInfo);
            }
            else
            {
                var tp = obj.GetType();
                foreach (var fi in GetAllSerializableFields(tp))
                {
                    try
                    {
                        var value = _unitySerialInfo.GetValue(fi.Name, fi.FieldType);
                        fi.SetValue(obj, value);
                    }
                    catch
                    {
                        //do nothing
                    }
                }
            }
            _unitySerialInfo.EndContext();

            return(obj);
        }
예제 #9
0
        public object SetObjectData(object obj, System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context, System.Runtime.Serialization.ISurrogateSelector selector)
        {
            Vector3 v3 = (Vector3)obj;

            v3.x = (float)info.GetValue("x", typeof(float));
            v3.y = (float)info.GetValue("y", typeof(float));
            v3.z = (float)info.GetValue("z", typeof(float));

            return((object)v3);
        }
예제 #10
0
            public object SetObjectData(object obj, System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context, System.Runtime.Serialization.ISurrogateSelector selector)
            {
                FieldInfo[] fieldInfos = obj.GetType().GetFields(BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic);
                foreach (var fi in fieldInfos)
                {
                    if (IsKnownType(fi.FieldType))
                    {
                        if (IsNullableType(fi.FieldType))
                        {
                            // Nullable<argumentValue>
                            Type argumentValueForTheNullableType = GetFirstArgumentOfGenericType(fi.FieldType);
                            fi.SetValue(obj, info.GetValue(fi.Name, argumentValueForTheNullableType));
                        }
                        else
                        {
                            fi.SetValue(obj, info.GetValue(fi.Name, fi.FieldType));
                        }
                    }
                    else
                    if (fi.FieldType.IsClass)
                    {
                        fi.SetValue(obj, info.GetValue(fi.Name, fi.FieldType));
                    }
                }

                return(obj);
            }
예제 #11
0
 public System.Runtime.Serialization.ISerializationSurrogate GetSurrogate(Type type, System.Runtime.Serialization.StreamingContext context, out System.Runtime.Serialization.ISurrogateSelector selector)
 {
     if (IsKnownType(type))
     {
         selector = null;
         return(null);
     }
     else if (type.IsClass || type.IsValueType)
     {
         selector = this;
         return(this);
     }
     else
     {
         selector = null;
         return(null);
     }
 }
예제 #12
0
 public void ChainSelector(System.Runtime.Serialization.ISurrogateSelector selector)
 {
     this._nextSelector = selector;
 }