From bb88a48b016227d9bebc7b8c5f966122bcb700f1 Mon Sep 17 00:00:00 2001 From: rstam Date: Mon, 17 Oct 2011 20:31:10 -0400 Subject: [PATCH] Incorporated Brian Knight's fix for CSHARP-310 with minor changes. --- Bson/Serialization/BsonClassMap.cs | 2 +- Bson/Serialization/BsonMemberMap.cs | 9 +++++---- BsonUnitTests/Jira/CSharp310Tests.cs | 11 ++++------- 3 files changed, 10 insertions(+), 12 deletions(-) diff --git a/Bson/Serialization/BsonClassMap.cs b/Bson/Serialization/BsonClassMap.cs index 5ee40c7274..af52f61f19 100644 --- a/Bson/Serialization/BsonClassMap.cs +++ b/Bson/Serialization/BsonClassMap.cs @@ -878,7 +878,7 @@ namespace MongoDB.Bson.Serialization { var defaultValue = conventions.DefaultValueConvention.GetDefaultValue(memberInfo); if (defaultValue != null) { - memberMap.SetDefaultValue(defaultValue, memberMap.SerializeDefaultValue); + memberMap.SetDefaultValue(defaultValue); } // see if the class has a method called ShouldSerializeXyz where Xyz is the name of this member diff --git a/Bson/Serialization/BsonMemberMap.cs b/Bson/Serialization/BsonMemberMap.cs index fe05ad6b9b..00177e078e 100755 --- a/Bson/Serialization/BsonMemberMap.cs +++ b/Bson/Serialization/BsonMemberMap.cs @@ -242,7 +242,9 @@ namespace MongoDB.Bson.Serialization { public BsonMemberMap SetDefaultValue( object defaultValue ) { - return SetDefaultValue(defaultValue, true); // serializeDefaultValue + this.defaultValue = defaultValue; + this.hasDefaultValue = true; + return this; } /// @@ -255,9 +257,8 @@ namespace MongoDB.Bson.Serialization { object defaultValue, bool serializeDefaultValue ) { - this.hasDefaultValue = true; - this.serializeDefaultValue = serializeDefaultValue; - this.defaultValue = defaultValue; + SetDefaultValue(defaultValue); + SetSerializeDefaultValue(serializeDefaultValue); return this; } diff --git a/BsonUnitTests/Jira/CSharp310Tests.cs b/BsonUnitTests/Jira/CSharp310Tests.cs index 52aed3622c..1cb1a846e7 100644 --- a/BsonUnitTests/Jira/CSharp310Tests.cs +++ b/BsonUnitTests/Jira/CSharp310Tests.cs @@ -24,23 +24,20 @@ using MongoDB.Bson; using MongoDB.Bson.Serialization; using MongoDB.Bson.Serialization.Conventions; - namespace MongoDB.BsonUnitTests.Jira { [TestFixture] public class CSharp310Tests { private class C { public int Id; - public Guid G; + public Guid G = Guid.Empty; } private class EmptyGuidDefaultValueConvention : IDefaultValueConvention { public object GetDefaultValue(MemberInfo memberInfo) { - var type = (memberInfo.MemberType == MemberTypes.Field) - ? ((FieldInfo)memberInfo).FieldType : ((PropertyInfo)memberInfo).PropertyType; + var type = (memberInfo.MemberType == MemberTypes.Field) ? ((FieldInfo) memberInfo).FieldType : ((PropertyInfo) memberInfo).PropertyType; if (type == typeof(Guid)) { return Guid.Empty; - } - else { + } else { return null; } } @@ -67,4 +64,4 @@ namespace MongoDB.BsonUnitTests.Jira { Assert.IsTrue(bson.SequenceEqual(rehydrated.ToBson())); } } -} \ No newline at end of file +}