1818using System . Linq ;
1919using System . Linq . Expressions ;
2020using System . Text ;
21+
2122using MongoDB . Bson ;
2223using MongoDB . Bson . IO ;
2324using MongoDB . Bson . Serialization ;
@@ -197,10 +198,8 @@ public static IMongoFields Null
197198 /// <summary>
198199 /// Adds one or more field names to be excluded from the results.
199200 /// </summary>
200- /// <param name="memberExpressions">One or more field names.</param>
201- /// <returns>
202- /// The builder (so method calls can be chained).
203- /// </returns>
201+ /// <param name="memberExpressions">The member expressions.</param>
202+ /// <returns>The builder (so method calls can be chained).</returns>
204203 public static FieldsBuilder < TDocument > Exclude ( params Expression < Func < TDocument , object > > [ ] memberExpressions )
205204 {
206205 return new FieldsBuilder < TDocument > ( ) . Exclude ( memberExpressions ) ;
@@ -210,9 +209,7 @@ public static FieldsBuilder<TDocument> Exclude(params Expression<Func<TDocument,
210209 /// Adds one or more field names to be included in the results.
211210 /// </summary>
212211 /// <param name="memberExpressions">The member expressions.</param>
213- /// <returns>
214- /// The builder (so method calls can be chained).
215- /// </returns>
212+ /// <returns>The builder (so method calls can be chained).</returns>
216213 public static FieldsBuilder < TDocument > Include ( params Expression < Func < TDocument , object > > [ ] memberExpressions )
217214 {
218215 return new FieldsBuilder < TDocument > ( ) . Include ( memberExpressions ) ;
@@ -221,28 +218,24 @@ public static FieldsBuilder<TDocument> Include(params Expression<Func<TDocument,
221218 /// <summary>
222219 /// Adds a slice to be included in the results.
223220 /// </summary>
224- /// <typeparam name="TMember ">The type of the member.</typeparam>
221+ /// <typeparam name="TValue ">The type of the enumerable member values .</typeparam>
225222 /// <param name="memberExpression">The member expression.</param>
226223 /// <param name="size">The size of the slice (negative sizes are taken from the end).</param>
227- /// <returns>
228- /// The builder (so method calls can be chained).
229- /// </returns>
230- public static FieldsBuilder < TDocument > Slice < TMember > ( Expression < Func < TDocument , IEnumerable < TMember > > > memberExpression , int size )
224+ /// <returns>The builder (so method calls can be chained).</returns>
225+ public static FieldsBuilder < TDocument > Slice < TValue > ( Expression < Func < TDocument , IEnumerable < TValue > > > memberExpression , int size )
231226 {
232227 return new FieldsBuilder < TDocument > ( ) . Slice ( memberExpression , size ) ;
233228 }
234229
235230 /// <summary>
236231 /// Adds a slice to be included in the results.
237232 /// </summary>
238- /// <typeparam name="TMember ">The type of the member.</typeparam>
233+ /// <typeparam name="TValue ">The type of the enumerable member values .</typeparam>
239234 /// <param name="memberExpression">The member expression.</param>
240235 /// <param name="skip">The number of values to skip.</param>
241236 /// <param name="limit">The number of values to extract.</param>
242- /// <returns>
243- /// The builder (so method calls can be chained).
244- /// </returns>
245- public static FieldsBuilder < TDocument > Slice < TMember > ( Expression < Func < TDocument , IEnumerable < TMember > > > memberExpression , int skip , int limit )
237+ /// <returns>The builder (so method calls can be chained).</returns>
238+ public static FieldsBuilder < TDocument > Slice < TValue > ( Expression < Func < TDocument , IEnumerable < TValue > > > memberExpression , int skip , int limit )
246239 {
247240 return new FieldsBuilder < TDocument > ( ) . Slice ( memberExpression , skip , limit ) ;
248241 }
@@ -255,7 +248,8 @@ public static FieldsBuilder<TDocument> Slice<TMember>(Expression<Func<TDocument,
255248 [ Serializable ]
256249 public class FieldsBuilder < TDocument > : BuilderBase , IMongoFields
257250 {
258- private readonly BsonSerializationInfoHelper _serializationHelper ;
251+ // private fields
252+ private readonly BsonSerializationInfoHelper _serializationInfoHelper ;
259253 private FieldsBuilder _fieldsBuilder ;
260254
261255 // constructors
@@ -264,7 +258,7 @@ public class FieldsBuilder<TDocument> : BuilderBase, IMongoFields
264258 /// </summary>
265259 public FieldsBuilder ( )
266260 {
267- _serializationHelper = new BsonSerializationInfoHelper ( ) ;
261+ _serializationInfoHelper = new BsonSerializationInfoHelper ( ) ;
268262 _fieldsBuilder = new FieldsBuilder ( ) ;
269263 }
270264
@@ -273,13 +267,10 @@ public FieldsBuilder()
273267 /// Adds one or more field names to be excluded from the results.
274268 /// </summary>
275269 /// <param name="memberExpressions">The member expressions.</param>
276- /// <returns>
277- /// The builder (so method calls can be chained).
278- /// </returns>
270+ /// <returns>The builder (so method calls can be chained).</returns>
279271 public FieldsBuilder < TDocument > Exclude ( params Expression < Func < TDocument , object > > [ ] memberExpressions )
280272 {
281273 var elementNames = GetElementNames ( memberExpressions ) ;
282-
283274 _fieldsBuilder = _fieldsBuilder . Exclude ( elementNames . ToArray ( ) ) ;
284275 return this ;
285276 }
@@ -288,61 +279,53 @@ public FieldsBuilder<TDocument> Exclude(params Expression<Func<TDocument, object
288279 /// Adds one or more field names to be included in the results.
289280 /// </summary>
290281 /// <param name="memberExpressions">The member expressions.</param>
291- /// <returns>
292- /// The builder (so method calls can be chained).
293- /// </returns>
282+ /// <returns>The builder (so method calls can be chained).</returns>
294283 public FieldsBuilder < TDocument > Include ( params Expression < Func < TDocument , object > > [ ] memberExpressions )
295284 {
296285 var elementNames = GetElementNames ( memberExpressions ) ;
297-
298286 _fieldsBuilder = _fieldsBuilder . Include ( elementNames . ToArray ( ) ) ;
299287 return this ;
300288 }
301289
302290 /// <summary>
303291 /// Adds a slice to be included in the results.
304292 /// </summary>
305- /// <typeparam name="TMember ">The type of the member.</typeparam>
293+ /// <typeparam name="TValue ">The type of the enumerable member values .</typeparam>
306294 /// <param name="memberExpression">The member expression.</param>
307295 /// <param name="size">The size of the slice (negative sizes are taken from the end).</param>
308- /// <returns>
309- /// The builder (so method calls can be chained).
310- /// </returns>
311- public FieldsBuilder < TDocument > Slice < TMember > ( Expression < Func < TDocument , IEnumerable < TMember > > > memberExpression , int size )
296+ /// <returns>The builder (so method calls can be chained).</returns>
297+ public FieldsBuilder < TDocument > Slice < TValue > ( Expression < Func < TDocument , IEnumerable < TValue > > > memberExpression , int size )
312298 {
313- var info = _serializationHelper . GetSerializationInfo ( memberExpression ) ;
314- _fieldsBuilder = _fieldsBuilder . Slice ( info . ElementName , size ) ;
299+ var serializationInfo = _serializationInfoHelper . GetSerializationInfo ( memberExpression ) ;
300+ _fieldsBuilder = _fieldsBuilder . Slice ( serializationInfo . ElementName , size ) ;
315301 return this ;
316302 }
317303
318304 /// <summary>
319305 /// Adds a slice to be included in the results.
320306 /// </summary>
321- /// <typeparam name="TMember ">The type of the member.</typeparam>
307+ /// <typeparam name="TValue ">The type of the enumerable member values .</typeparam>
322308 /// <param name="memberExpression">The member expression.</param>
323309 /// <param name="skip">The number of values to skip.</param>
324310 /// <param name="limit">The number of values to extract.</param>
325- /// <returns>
326- /// The builder (so method calls can be chained).
327- /// </returns>
328- public FieldsBuilder < TDocument > Slice < TMember > ( Expression < Func < TDocument , IEnumerable < TMember > > > memberExpression , int skip , int limit )
311+ /// <returns>The builder (so method calls can be chained).</returns>
312+ public FieldsBuilder < TDocument > Slice < TValue > ( Expression < Func < TDocument , IEnumerable < TValue > > > memberExpression , int skip , int limit )
329313 {
330- var info = _serializationHelper . GetSerializationInfo ( memberExpression ) ;
331- _fieldsBuilder = _fieldsBuilder . Slice ( info . ElementName , skip , limit ) ;
314+ var serializationInfo = _serializationInfoHelper . GetSerializationInfo ( memberExpression ) ;
315+ _fieldsBuilder = _fieldsBuilder . Slice ( serializationInfo . ElementName , skip , limit ) ;
332316 return this ;
333317 }
334318
335319 /// <summary>
336320 /// Converts this object to a BsonDocument.
337321 /// </summary>
338- /// <returns>
339- /// A BsonDocument.
340- /// </returns>
322+ /// <returns>A BsonDocument.</returns>
341323 public override BsonDocument ToBsonDocument ( )
342324 {
343325 return _fieldsBuilder . ToBsonDocument ( ) ;
344326 }
345327
328+ // protected methods
346329 /// <summary>
347330 /// Serializes the result of the builder to a BsonWriter.
348331 /// </summary>
@@ -354,10 +337,11 @@ protected override void Serialize(BsonWriter bsonWriter, Type nominalType, IBson
354337 ( ( IBsonSerializable ) _fieldsBuilder ) . Serialize ( bsonWriter , nominalType , options ) ;
355338 }
356339
340+ // private methods
357341 private IEnumerable < string > GetElementNames ( IEnumerable < Expression < Func < TDocument , object > > > memberExpressions )
358342 {
359343 var elementNames = memberExpressions
360- . Select ( x => _serializationHelper . GetSerializationInfo ( x ) )
344+ . Select ( x => _serializationInfoHelper . GetSerializationInfo ( x ) )
361345 . Select ( x => x . ElementName ) ;
362346 return elementNames ;
363347 }
0 commit comments