Component.cs 589 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using MongoDB.Bson.Serialization.Attributes;
  2. namespace Model
  3. {
  4. /// <summary>
  5. /// Component的Id与Owner Entity Id一样
  6. /// </summary>
  7. public abstract class Component<T>: Object where T : Entity<T>
  8. {
  9. private T owner;
  10. [BsonIgnore]
  11. public T Owner
  12. {
  13. get
  14. {
  15. return this.owner;
  16. }
  17. set
  18. {
  19. this.owner = value;
  20. }
  21. }
  22. protected Component()
  23. {
  24. ObjectManager.Add(this);
  25. }
  26. protected Component(long id): base(id)
  27. {
  28. ObjectManager.Add(this);
  29. }
  30. public override void Dispose()
  31. {
  32. base.Dispose();
  33. ObjectManager.Remove(this.Id);
  34. }
  35. }
  36. }