IBsonSerializationOptions.cs 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. /* Copyright 2010-2014 MongoDB Inc.
  2. *
  3. * Licensed under the Apache License, Version 2.0 (the "License");
  4. * you may not use this file except in compliance with the License.
  5. * You may obtain a copy of the License at
  6. *
  7. * http://www.apache.org/licenses/LICENSE-2.0
  8. *
  9. * Unless required by applicable law or agreed to in writing, software
  10. * distributed under the License is distributed on an "AS IS" BASIS,
  11. * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  12. * See the License for the specific language governing permissions and
  13. * limitations under the License.
  14. */
  15. using System;
  16. namespace MongoDB.Bson.Serialization
  17. {
  18. /// <summary>
  19. /// A marker interface that represents serialization options.
  20. /// </summary>
  21. public interface IBsonSerializationOptions
  22. {
  23. /// <summary>
  24. /// Apply an attribute to these serialization options and modify the options accordingly.
  25. /// </summary>
  26. /// <param name="serializer">The serializer that these serialization options are for.</param>
  27. /// <param name="attribute">The serialization options attribute.</param>
  28. void ApplyAttribute(IBsonSerializer serializer, Attribute attribute);
  29. /// <summary>
  30. /// Clones the serialization options.
  31. /// </summary>
  32. /// <returns>A cloned copy of the serialization options.</returns>
  33. IBsonSerializationOptions Clone();
  34. /// <summary>
  35. /// Freezes the serialization options.
  36. /// </summary>
  37. /// <returns>The frozen serialization options.</returns>
  38. IBsonSerializationOptions Freeze();
  39. }
  40. }