/// <summary>
 /// Registers a middleware to deserialize json messages using schema registry
 /// </summary>
 /// <param name="middlewares">The middleware configuration builder</param>
 /// <typeparam name="TMessage">The message type</typeparam>
 /// <returns></returns>
 public static IConsumerMiddlewareConfigurationBuilder AddSchemaRegistryJsonSerializer <TMessage>(
     this IConsumerMiddlewareConfigurationBuilder middlewares)
 {
     return(middlewares.AddSerializer(
                resolver => new ConfluentJsonSerializer(resolver),
                _ => new SingleMessageTypeResolver(typeof(TMessage))));
 }
Ejemplo n.º 2
0
 /// <summary>
 /// Registers a middleware to deserialize avro messages using schema registry
 /// </summary>
 /// <param name="middlewares">The middleware configuration builder</param>
 /// <returns></returns>
 public static IConsumerMiddlewareConfigurationBuilder AddSchemaRegistryAvroSerializer(
     this IConsumerMiddlewareConfigurationBuilder middlewares)
 {
     return(middlewares.AddSerializer(
                resolver => new ConfluentAvroSerializer(resolver),
                resolver => new SchemaRegistryTypeResolver(new ConfluentAvroTypeNameResolver(resolver.Resolve <ISchemaRegistryClient>()))));
 }
Ejemplo n.º 3
0
 /// <summary>
 /// Registers a middleware to deserialize messages
 /// </summary>
 /// <typeparam name="TSerializer">A class that implements <see cref="IMessageSerializer"/></typeparam>
 public static IConsumerMiddlewareConfigurationBuilder AddSerializer <TSerializer>(
     this IConsumerMiddlewareConfigurationBuilder consumer)
     where TSerializer : class, IMessageSerializer
 {
     return(consumer.AddSerializer(
                resolver => resolver.Resolve <TSerializer>(),
                resolver => resolver.Resolve <DefaultMessageTypeResolver>()));
 }
 /// <summary>
 /// Register a middleware to deserialize messages
 /// </summary>
 /// <typeparam name="TSerializer">A class that implements <see cref="IMessageSerializer"/></typeparam>
 /// <param name="middlewares"></param>
 /// <param name="serializerFactory">A factory to create a <see cref="IMessageSerializer"/></param>
 public static IConsumerMiddlewareConfigurationBuilder AddSerializer <TSerializer>(
     this IConsumerMiddlewareConfigurationBuilder middlewares,
     Factory <TSerializer> serializerFactory)
     where TSerializer : class, IMessageSerializer
 {
     return(middlewares.AddSerializer(
                serializerFactory,
                resolver => new DefaultMessageTypeResolver()));
 }
Ejemplo n.º 5
0
 /// <summary>
 /// Register a middleware to deserialize the message to a fixed type
 /// </summary>
 /// <param name="middlewares">The middleware configuration builder</param>
 /// <param name="serializerFactory">A factory to create a <see cref="ISerializer"/></param>
 /// <typeparam name="TMessage">The message type</typeparam>
 /// <typeparam name="TSerializer">A class that implements <see cref="ISerializer"/></typeparam>
 /// <returns></returns>
 public static IConsumerMiddlewareConfigurationBuilder AddSingleTypeSerializer <TMessage, TSerializer>(
     this IConsumerMiddlewareConfigurationBuilder middlewares,
     Factory <TSerializer> serializerFactory)
     where TSerializer : class, ISerializer
 {
     return(middlewares.AddSerializer(
                serializerFactory,
                _ => new SingleMessageTypeResolver(typeof(TMessage))));
 }
Ejemplo n.º 6
0
 /// <summary>
 /// Register a middleware to deserialize the message to a fixed type
 /// </summary>
 /// <param name="consumer"></param>
 /// <param name="serializerFactory">A factory to create a <see cref="IMessageSerializer"/></param>
 /// <typeparam name="TMessage">The message type</typeparam>
 /// <typeparam name="TSerializer">A class that implements <see cref="IMessageSerializer"/></typeparam>
 /// <returns></returns>
 public static IConsumerMiddlewareConfigurationBuilder AddSingleTypeSerializer <TMessage, TSerializer>(
     this IConsumerMiddlewareConfigurationBuilder consumer,
     Factory <TSerializer> serializerFactory)
     where TSerializer : class, IMessageSerializer
 {
     return(consumer.AddSerializer(
                serializerFactory,
                resolver => resolver.Resolve <SingleMessageTypeResolver <TMessage> >()));
 }
        /// <summary>
        /// Registers a middleware to deserialize messages
        /// </summary>
        /// <typeparam name="TSerializer">A class that implements <see cref="IMessageSerializer"/></typeparam>
        public static IConsumerMiddlewareConfigurationBuilder AddSerializer <TSerializer>(
            this IConsumerMiddlewareConfigurationBuilder middlewares)
            where TSerializer : class, IMessageSerializer
        {
            middlewares.DependencyConfigurator.AddTransient <TSerializer>();

            return(middlewares.AddSerializer(
                       resolver => resolver.Resolve <TSerializer>(),
                       resolver => new DefaultMessageTypeResolver()));
        }
Ejemplo n.º 8
0
        /// <summary>
        /// Register a middleware to deserialize the message to a fixed type
        /// </summary>
        /// <param name="middlewares">The middleware configuration builder</param>
        /// <param name="messageType">The message type</param>
        /// <typeparam name="TSerializer">A class that implements <see cref="ISerializer"/></typeparam>
        /// <returns></returns>
        public static IConsumerMiddlewareConfigurationBuilder AddSingleTypeSerializer <TSerializer>(
            this IConsumerMiddlewareConfigurationBuilder middlewares,
            Type messageType)
            where TSerializer : class, ISerializer
        {
            middlewares.DependencyConfigurator.AddTransient <TSerializer>();

            return(middlewares.AddSerializer(
                       resolver => resolver.Resolve <TSerializer>(),
                       _ => new SingleMessageTypeResolver(messageType)));
        }
 /// <summary>
 /// Register a middleware to deserialize the message to a fixed type
 /// </summary>
 /// <param name="middlewares"></param>
 /// <typeparam name="TSerializer">A class that implements <see cref="IMessageSerializer"/></typeparam>
 /// <typeparam name="TMessage">The message type</typeparam>
 /// <returns></returns>
 public static IConsumerMiddlewareConfigurationBuilder AddSingleTypeSerializer <TMessage, TSerializer>(
     this IConsumerMiddlewareConfigurationBuilder middlewares)
     where TSerializer : class, IMessageSerializer
 {
     return(middlewares.AddSerializer <TSerializer, SingleMessageTypeResolver <TMessage> >());
 }