Object.cs 660 B

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  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. [BsonId]
  10. public long Id { get; private set; }
  11. protected Object()
  12. {
  13. Id = IdGenerater.GenerateId();
  14. ObjectManager.Instance.Add(this);
  15. }
  16. protected Object(long id)
  17. {
  18. this.Id = id;
  19. ObjectManager.Instance.Add(this);
  20. }
  21. public virtual void Dispose()
  22. {
  23. if (this.Id == 0)
  24. {
  25. return;
  26. }
  27. ObjectManager.Instance.Remove(this);
  28. this.Id = 0;
  29. }
  30. public virtual void BeginInit()
  31. {
  32. }
  33. public virtual void EndInit()
  34. {
  35. }
  36. }
  37. }