Просмотр исходного кода

想到了更简单的方法,序列化Entity可以忽略Component的Id

tanghai 8 лет назад
Родитель
Сommit
1b879d1ec0

+ 1 - 5
Unity/Assets/Scripts/Base/Object/Component.cs

@@ -6,10 +6,6 @@ namespace Model
 	[BsonKnownTypes(typeof(AConfigComponent))]
 	public abstract class Component: Disposer
 	{
-		[BsonId]
-		[BsonIgnore]
-		public sealed override long Id { get; set; }
-
 		[BsonIgnore]
 		public Entity Entity { get; set; }
 
@@ -20,7 +16,7 @@ namespace Model
 
 		protected Component()
 		{
-			this.Id = IdGenerater.GenerateId();
+			this.Id = 1;
 		}
 		
 		public T GetComponent<T>() where T : Component

+ 4 - 2
Unity/Assets/Scripts/Base/Object/Disposer.cs

@@ -5,8 +5,10 @@ namespace Model
 {
 	public abstract class Disposer : Object, IDisposable
 	{
-		[BsonIgnore]
-		public abstract long Id { get; set; }
+		[BsonIgnoreIfDefault]
+		[BsonDefaultValue(1L)]
+		[BsonElement]
+		public long Id { get; set; }
 		
 		protected Disposer()
 		{

+ 0 - 4
Unity/Assets/Scripts/Base/Object/Entity.cs

@@ -9,10 +9,6 @@ namespace Model
 	[BsonIgnoreExtraElements]
 	public class Entity : Disposer, ISupportInitialize
 	{
-		[BsonId]
-		[BsonElement(Order = 1)]
-		public sealed override long Id { get; set; }
-
 		[BsonIgnore]
 		public Entity Parent { get; set; }
 		

+ 2 - 7
Unity/Hotfix/Base/Object/Component.cs

@@ -1,14 +1,9 @@
-using Model;
-using MongoDB.Bson.Serialization.Attributes;
+using MongoDB.Bson.Serialization.Attributes;
 
 namespace Hotfix
 {
 	public abstract class Component : Disposer
 	{
-		[BsonId]
-		[BsonIgnore]
-		public sealed override long Id { get; set; }
-
 		[BsonIgnore]
 		public Entity Entity { get; set; }
 
@@ -19,7 +14,7 @@ namespace Hotfix
 
 		protected Component()
 		{
-			this.Id = IdGenerater.GenerateId();
+			this.Id = 1;
 		}
 
 		public T GetComponent<T>() where T : Component

+ 4 - 2
Unity/Hotfix/Base/Object/Disposer.cs

@@ -4,8 +4,10 @@ namespace Hotfix
 {
 	public abstract class Disposer : Object, IDisposable2
 	{
-		[BsonIgnore]
-		public abstract long Id { get; set; }
+		[BsonIgnoreIfDefault]
+		[BsonDefaultValue(1L)]
+		[BsonElement]
+		public long Id { get; set; }
 
 		protected Disposer()
 		{

+ 0 - 4
Unity/Hotfix/Base/Object/Entity.cs

@@ -10,10 +10,6 @@ namespace Hotfix
 	[BsonIgnoreExtraElements]
 	public class Entity : Disposer, ISupportInitialize
 	{
-		[BsonId]
-		[BsonElement(Order = 1)]
-		public sealed override long Id { get; set; }
-
 		[BsonIgnore]
 		public Entity Parent { get; set; }