/// <summary>
        ///
        /// </summary>
        /// <param name="propertyBagAsJson"></param>
        /// <param name="serializer"></param>
        /// <returns></returns>
        public static PropertyBag From(string propertyBagAsJson, ISerializer serializer)
        {
            //TODO: this is a hack, so that all our specs don't fail due to loss of type info.
            //We need to revisit types and PropertyBag and serialization.
            //Comparing PropertyBags aside from what they map to is not possible.
            BsonDocument document = BsonDocument.Parse(propertyBagAsJson);

            return(PropertyBagBsonSerializer.Deserialize(document));
        }
        /// <summary>
        ///
        /// </summary>
        /// <param name="propertyBag"></param>
        /// <param name="serializer"></param>
        /// <returns></returns>
        public static string Serialize(PropertyBag propertyBag, ISerializer serializer)
        {
            var json = PropertyBagBsonSerializer.Serialize(propertyBag).ToJson();

            return(json);
        }