public override void Execute(SharedObjects shared) { object pathObject = PopValueAssert(shared, true); SerializableStructure serialized = PopValueAssert(shared, true) as SerializableStructure; AssertArgBottomAndConsume(shared); if (serialized == null) { throw new KOSException("This type is not serializable"); } string serializedString = new SerializationMgr(shared).Serialize(serialized, JsonFormatter.WriterInstance); FileContent fileContent = new FileContent(serializedString); GlobalPath path = shared.VolumeMgr.GlobalPathFromObject(pathObject); Volume volume = shared.VolumeMgr.GetVolumeFromPath(path); ReturnValue = volume.SaveFile(path, fileContent); }
public override void Execute(SharedObjects shared) { object pathObject = PopValueAssert(shared, true); AssertArgBottomAndConsume(shared); GlobalPath path = shared.VolumeMgr.GlobalPathFromObject(pathObject); Volume volume = shared.VolumeMgr.GetVolumeFromPath(path); VolumeFile volumeFile = volume.Open(path) as VolumeFile; if (volumeFile == null) { throw new KOSException("File does not exist: " + path); } Structure read = new SerializationMgr(shared).Deserialize(volumeFile.ReadAll().String, JsonFormatter.ReaderInstance) as SerializableStructure; ReturnValue = read; }