@@ -105,17 +105,27 @@ public static implicit operator SearchPathDefinition<TDocument>(List<string> fie
105
105
/// <param name="args">The render arguments.</param>
106
106
/// <returns>The rendered field.</returns>
107
107
protected string RenderField ( FieldDefinition < TDocument > fieldDefinition , RenderArgs < TDocument > args )
108
- => RenderFieldAndGetFieldSerializer ( fieldDefinition , args ) . renderedPath ;
108
+ => RenderFieldAndGetFieldSerializer ( fieldDefinition , args , out _ ) ;
109
109
110
- internal virtual ( BsonValue , IBsonSerializer ) RenderAndGetFieldSerializer ( RenderArgs < TDocument > args ) => ( Render ( args ) , null ) ;
110
+ internal virtual BsonValue RenderAndGetFieldSerializer (
111
+ RenderArgs < TDocument > args ,
112
+ out IBsonSerializer fieldSerializer )
113
+ {
114
+ fieldSerializer = null ;
115
+ return Render ( args ) ;
116
+ }
111
117
112
- internal ( string renderedPath , IBsonSerializer fieldSerializer ) RenderFieldAndGetFieldSerializer ( FieldDefinition < TDocument > fieldDefinition , RenderArgs < TDocument > args )
118
+ internal string RenderFieldAndGetFieldSerializer (
119
+ FieldDefinition < TDocument > fieldDefinition ,
120
+ RenderArgs < TDocument > args ,
121
+ out IBsonSerializer fieldSerializer )
113
122
{
114
123
var renderedField = fieldDefinition . Render ( args ) ;
115
124
var prefix = args . PathRenderArgs . PathPrefix ;
116
125
var renderedString = prefix == null ? renderedField . FieldName : $ "{ prefix } .{ renderedField . FieldName } ";
126
+ fieldSerializer = renderedField . FieldSerializer ;
117
127
118
- return ( renderedString , renderedField . FieldSerializer ) ;
128
+ return renderedString ;
119
129
}
120
130
}
121
131
}
0 commit comments