protected override JsonProperty CreateProperty(System.Reflection.MemberInfo member, Raven.Imports.Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            var property = base.CreateProperty(member, memberSerialization);

            if (member is System.Reflection.PropertyInfo &&
                typeof(IEventSource).IsAssignableFrom(member.ReflectedType) &&
                member.Name == "Events" &&
                member.DeclaringType == typeof(EventStream))
            {
                property.ShouldSerialize = _ => false;
            }

            return(property);
        }
        protected override IList <JsonProperty> CreateProperties(Type type, Raven.Imports.Newtonsoft.Json.MemberSerialization memberSerialization)
        {
            //type.GetProperties().Select( p => p.Attributes)

            return(base.CreateProperties(type, memberSerialization));
        }