Object.cs 719 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using System.ComponentModel;
  3. using Base;
  4. using MongoDB.Bson.Serialization.Attributes;
  5. namespace Model
  6. {
  7. public abstract class Object: IDisposable, ISupportInitialize
  8. {
  9. [BsonIgnore]
  10. public static ObjectManager ObjectManager = new ObjectManager();
  11. [BsonId]
  12. public long Id { get; private set; }
  13. protected Object()
  14. {
  15. Id = IdGenerater.GenerateId();
  16. ObjectManager.Add(this);
  17. }
  18. protected Object(long id)
  19. {
  20. this.Id = id;
  21. ObjectManager.Add(this);
  22. }
  23. public virtual void Dispose()
  24. {
  25. if (this.Id == 0)
  26. {
  27. return;
  28. }
  29. ObjectManager.Remove(this.Id);
  30. this.Id = 0;
  31. }
  32. public virtual void BeginInit()
  33. {
  34. }
  35. public virtual void EndInit()
  36. {
  37. }
  38. }
  39. }