Skip to content

Commit c1d7df7

Browse files
author
rstam
committed
Change to GetItemSerializationInfo to properly throw exception if serializationInfo parameter does not implement IBsonItemSerializationInfoProvider.
1 parent 22856d4 commit c1d7df7

File tree

1 file changed

+13
-14
lines changed

1 file changed

+13
-14
lines changed

Driver/Linq/Utils/BsonSerializationInfoHelper.cs

Lines changed: 13 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -94,23 +94,22 @@ public BsonSerializationInfo GetSerializationInfo(Expression expression)
9494
/// <returns>The item BsonSerializationInfo for the expression.</returns>
9595
public BsonSerializationInfo GetItemSerializationInfo(string methodName, BsonSerializationInfo serializationInfo)
9696
{
97-
var itemSerializer = serializationInfo.Serializer as IBsonItemSerializationInfoProvider;
98-
if (itemSerializer != null)
97+
var itemSerializationInfoProvider = serializationInfo.Serializer as IBsonItemSerializationInfoProvider;
98+
if (itemSerializationInfoProvider != null)
9999
{
100-
serializationInfo = itemSerializer.GetItemSerializationInfo();
101-
}
102-
103-
if (serializationInfo == null)
104-
{
105-
string message = string.Format("{0} requires that the serializer specified for {1} support items by implementing {2} and returning a non-null result. {3} is the current serializer.",
106-
methodName,
107-
serializationInfo.ElementName,
108-
typeof(IBsonItemSerializationInfoProvider),
109-
serializationInfo.Serializer.GetType());
110-
throw new NotSupportedException(message);
100+
var itemSerializationInfo = itemSerializationInfoProvider.GetItemSerializationInfo();
101+
if (itemSerializationInfo != null)
102+
{
103+
return itemSerializationInfo;
104+
}
111105
}
112106

113-
return serializationInfo;
107+
string message = string.Format("{0} requires that the serializer specified for {1} support items by implementing {2} and returning a non-null result. {3} is the current serializer.",
108+
methodName,
109+
serializationInfo.ElementName,
110+
typeof(IBsonItemSerializationInfoProvider),
111+
serializationInfo.Serializer.GetType());
112+
throw new NotSupportedException(message);
114113
}
115114

116115
/// <summary>

0 commit comments

Comments
 (0)