private IPersistable LoadObject(string name, IPersistable obj) { string fileName = PersistenceUtils.GetFilename(_scope, _path, name, _extension); FileInfo file = _scope.Context.GetResource(fileName).File; if (!file.Exists) { return(null); // No such file } IPersistable result = obj; lock (this.SyncRoot) { using (FileStream fs = new FileStream(file.FullName, FileMode.Open, FileAccess.Read, FileShare.Read)) { AMFReader reader = new AMFReader(fs); string typeName = reader.ReadData() as string; result = ObjectFactory.CreateInstance(typeName) as IPersistable; //result.Path = GetObjectPath(name, result.Name); //result = amfDeserializer.ReadData() as IPersistable; result.Deserialize(reader); } } return(result); }
/// <summary> /// Get filename for persistable object. /// </summary> /// <param name="obj"></param> /// <returns></returns> private string GetObjectFilename(IPersistable obj) { string name = obj.Name; if (name == null) { name = MemoryStore.PersistenceNoName; } return(PersistenceUtils.GetFilename(_scope, _path, name, _extension)); }
private string GetObjectFilename(IPersistable obj) { string name = obj.Name; if (name == null) { name = "__null__"; } return(PersistenceUtils.GetFilename(base._scope, this._path, name, this._extension)); }
public override bool Remove(string name) { base.Remove(name); string location = PersistenceUtils.GetFilename(base._scope, this._path, name, this._extension); FileInfo file = base._scope.Context.GetResource(location).File; if (file.Exists) { lock (base.SyncRoot) { file.Delete(); } } return(true); }
public override bool Remove(string name) { base.Remove(name); string fileName = PersistenceUtils.GetFilename(_scope, _path, name, _extension); FileInfo file = _scope.Context.GetResource(fileName).File; if (!file.Exists) { // File already deleted return(true); } lock (this.SyncRoot) { file.Delete(); } return(true); }
private IPersistable LoadObject(string name, IPersistable obj) { string location = PersistenceUtils.GetFilename(base._scope, this._path, name, this._extension); FileInfo file = base._scope.Context.GetResource(location).File; if (!file.Exists) { return(null); } IPersistable persistable = obj; lock (base.SyncRoot) { using (FileStream stream = new FileStream(file.FullName, FileMode.Open, FileAccess.Read, FileShare.Read)) { AMFReader reader = new AMFReader(stream); string typeName = reader.ReadData() as string; persistable = ObjectFactory.CreateInstance(typeName) as IPersistable; persistable.Deserialize(reader); } } return(persistable); }