public override SerializableStructure CreateInstance(string typeFullName, Dump data) { var deserializedType = Type.GetType(typeFullName) ?? Type.GetType(typeFullName + ", " + typeof(SafeSerializationMgr).Assembly.FullName); if (deserializedType == null) { throw new KOSSerializationException("Unrecognized type: " + typeFullName); } SerializableStructure instance = Activator.CreateInstance(deserializedType) as SerializableStructure; if (instance is IHasSharedObjects) { IHasSharedObjects withSharedObjects = instance as IHasSharedObjects; withSharedObjects.Shared = sharedObjects; } if (instance != null) { instance.LoadDump(data); } return(instance); }
public override IDumper CreateAndLoad(string typeFullName, Dump data) { IDumper instance = base.CreateInstance(typeFullName); if (instance is IHasSharedObjects) { IHasSharedObjects withSharedObjects = instance as IHasSharedObjects; withSharedObjects.Shared = sharedObjects; } else if (instance is IHasSafeSharedObjects) { IHasSafeSharedObjects withSharedObjects = instance as IHasSafeSharedObjects; withSharedObjects.Shared = sharedObjects; } if (instance != null) { instance.LoadDump(data); } return(instance); }