@@ -200,11 +200,12 @@ public LambdaExpression Expression
200200 /// <inheritdoc />
201201 public override RenderedFieldDefinition Render ( IBsonSerializer < TDocument > documentSerializer , IBsonSerializerRegistry serializerRegistry )
202202 {
203+ var lambda = ( LambdaExpression ) PartialEvaluator . Evaluate ( _expression ) ;
203204 var binder = new SerializationInfoBinder ( serializerRegistry ) ;
204205 var parameterSerializationInfo = new BsonSerializationInfo ( null , documentSerializer , documentSerializer . ValueType ) ;
205- var parameterExpression = new SerializationExpression ( _expression . Parameters [ 0 ] , parameterSerializationInfo ) ;
206- binder . RegisterParameterReplacement ( _expression . Parameters [ 0 ] , parameterExpression ) ;
207- var bound = binder . Bind ( _expression . Body ) as ISerializationExpression ;
206+ var parameterExpression = new SerializationExpression ( lambda . Parameters [ 0 ] , parameterSerializationInfo ) ;
207+ binder . RegisterParameterReplacement ( lambda . Parameters [ 0 ] , parameterExpression ) ;
208+ var bound = binder . Bind ( lambda . Body ) as ISerializationExpression ;
208209 if ( bound == null )
209210 {
210211 var message = string . Format ( "Unable to determine the serialization information for {0}." , _expression ) ;
@@ -244,11 +245,12 @@ public Expression<Func<TDocument, TField>> Expression
244245 /// <inheritdoc />
245246 public override RenderedFieldDefinition < TField > Render ( IBsonSerializer < TDocument > documentSerializer , IBsonSerializerRegistry serializerRegistry )
246247 {
248+ var lambda = ( LambdaExpression ) PartialEvaluator . Evaluate ( _expression ) ;
247249 var binder = new SerializationInfoBinder ( serializerRegistry ) ;
248250 var parameterSerializationInfo = new BsonSerializationInfo ( null , documentSerializer , documentSerializer . ValueType ) ;
249- var parameterExpression = new SerializationExpression ( _expression . Parameters [ 0 ] , parameterSerializationInfo ) ;
250- binder . RegisterParameterReplacement ( _expression . Parameters [ 0 ] , parameterExpression ) ;
251- var bound = binder . Bind ( _expression . Body ) as ISerializationExpression ;
251+ var parameterExpression = new SerializationExpression ( lambda . Parameters [ 0 ] , parameterSerializationInfo ) ;
252+ binder . RegisterParameterReplacement ( lambda . Parameters [ 0 ] , parameterExpression ) ;
253+ var bound = binder . Bind ( lambda . Body ) as ISerializationExpression ;
252254 if ( bound == null )
253255 {
254256 var message = string . Format ( "Unable to determine the serialization information for {0}." , _expression ) ;
0 commit comments