public static void Dispose(this WrappingBsonWriter instance, bool disposing)
        {
            var methodInfo = typeof(WrappingBsonWriter).GetMethods(BindingFlags.NonPublic | BindingFlags.Instance)
                             .Where(m => m.Name == "Dispose" && m.GetParameters().Length == 1 && m.GetParameters()[0].ParameterType == typeof(bool))
                             .Single();

            methodInfo.Invoke(instance, new object[] { disposing });
        }
        public static bool _disposed(this WrappingBsonWriter instance)
        {
            var propertyInfo = typeof(WrappingBsonWriter).GetField("_disposed", BindingFlags.NonPublic | BindingFlags.Instance);

            return((bool)propertyInfo.GetValue(instance));
        }