コード例 #1
0
        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);
        }
コード例 #2
0
        /// <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));
        }
コード例 #3
0
        private string GetObjectFilename(IPersistable obj)
        {
            string name = obj.Name;

            if (name == null)
            {
                name = "__null__";
            }
            return(PersistenceUtils.GetFilename(base._scope, this._path, name, this._extension));
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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);
        }
コード例 #6
0
        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);
        }
コード例 #7
0
 /// <summary>
 /// Return file path for persistable object.
 /// </summary>
 /// <param name="obj"></param>
 /// <param name="completePath"></param>
 /// <returns></returns>
 private string GetObjectFilePath(IPersistable obj, bool completePath)
 {
     return(PersistenceUtils.GetPath(_scope, _path));
 }