示例#1
0
 public override void PersistInstance(MudObject Object)
 {
     if (Object.IsPersistent) return; //The object is already persistent.
     if (ActiveInstances.ContainsKey(Object.GetFullName()))
         throw new InvalidOperationException("An instance with this name is already persisted.");
     if (Object.IsNamedObject)
     {
         Object.IsPersistent = true;
         ActiveInstances.Upsert(Object.GetFullName(), Object);
         ReadPersistentObject(Object);
     }
     else
         throw new InvalidOperationException("Anonymous objects cannot be persisted.");
 }
示例#2
0
 private void SavePersistentObject(MudObject Object)
 {
     var filename = DynamicPath + Object.GetFullName() + ".txt";
     Directory.CreateDirectory(System.IO.Path.GetDirectoryName(filename));
     var data = Core.SerializeObject(Object);
     System.IO.File.WriteAllText(filename, data);
 }
示例#3
0
 private void ReadPersistentObject(MudObject Object)
 {
     var filename = DynamicPath + Object.GetFullName() + ".txt";
     if (!System.IO.File.Exists(filename)) return;
     var data = System.IO.File.ReadAllText(filename);
     Core.DeserializeObject(Object, data);
 }
示例#4
0
        private void SavePersistentObject(MudObject Object)
        {
            var filename = DynamicPath + Object.GetFullName() + ".txt";

            Directory.CreateDirectory(System.IO.Path.GetDirectoryName(filename));
            var data = Core.SerializeObject(Object);

            System.IO.File.WriteAllText(filename, data);
        }
示例#5
0
        private void ReadPersistentObject(MudObject Object)
        {
            var filename = DynamicPath + Object.GetFullName() + ".txt";

            if (!System.IO.File.Exists(filename))
            {
                return;
            }
            var data = System.IO.File.ReadAllText(filename);

            Core.DeserializeObject(Object, data);
        }
示例#6
0
 override public void PersistInstance(MudObject Object)
 {
     if (Object.IsPersistent)
     {
         return;                      //The object is already persistent.
     }
     if (ActiveInstances.ContainsKey(Object.GetFullName()))
     {
         throw new InvalidOperationException("An instance with this name is already persisted.");
     }
     if (Object.IsNamedObject)
     {
         Object.IsPersistent = true;
         ActiveInstances.Upsert(Object.GetFullName(), Object);
         ReadPersistentObject(Object);
     }
     else
     {
         throw new InvalidOperationException("Anonymous objects cannot be persisted.");
     }
 }
示例#7
0
        public Object Recall(MudObject For, String Key)
        {
            var    valueName = For.GetFullName() + ":" + Key;
            Object value     = null;

            if (Memory.TryGetValue(valueName, out value))
            {
                return(value);
            }
            else
            {
                return(null);
            }
        }
示例#8
0
        public bool TryRecall <T>(MudObject For, String Key, out T Value) where T : class
        {
            Value = null;
            var    valueName = For.GetFullName() + ":" + Key;
            Object value     = null;

            if (Memory.TryGetValue(valueName, out value))
            {
                Value = value as T;
                return(value is T);
            }
            else
            {
                return(false);
            }
        }
示例#9
0
        public void Remember(MudObject For, String Key, Object Value)
        {
            var valueName = For.GetFullName() + ":" + Key;

            Memory.Upsert(valueName, Value);
        }