/// <summary>
 /// Registers a middleware to serialize avro messages using schema registry
 /// </summary>
 /// <param name="middlewares">The middleware configuration builder</param>
 /// <param name="config">The avro serializer configuration</param>
 /// <returns></returns>
 public static IProducerMiddlewareConfigurationBuilder AddSchemaRegistryAvroSerializer(
     this IProducerMiddlewareConfigurationBuilder middlewares,
     AvroSerializerConfig config = null)
 {
     return(middlewares.AddSerializer(
                resolver => new ConfluentAvroSerializer(resolver, config),
                resolver => new SchemaRegistryTypeResolver(new ConfluentAvroTypeNameResolver(resolver.Resolve <ISchemaRegistryClient>()))));
 }
Exemple #2
0
 /// <summary>
 /// Registers a middleware to serialize messages
 /// </summary>
 /// <typeparam name="TSerializer">A class that implements <see cref="IMessageSerializer"/></typeparam>x
 public static IProducerMiddlewareConfigurationBuilder AddSerializer <TSerializer>(
     this IProducerMiddlewareConfigurationBuilder producer)
     where TSerializer : class, IMessageSerializer
 {
     return(producer.AddSerializer(
                resolver => resolver.Resolve <TSerializer>(),
                resolver => resolver.Resolve <DefaultMessageTypeResolver>()));
 }
Exemple #3
0
 /// <summary>
 /// Registers a middleware to serialize json messages using schema registry
 /// </summary>
 /// <param name="middlewares">The middleware configuration builder</param>
 /// <param name="config">The protobuf serializer configuration</param>
 /// <typeparam name="TMessage">The message type</typeparam>
 /// <returns></returns>
 public static IProducerMiddlewareConfigurationBuilder AddSchemaRegistryJsonSerializer <TMessage>(
     this IProducerMiddlewareConfigurationBuilder middlewares,
     JsonSerializerConfig config = null)
 {
     return(middlewares.AddSerializer(
                resolver => new ConfluentJsonSerializer(resolver, config),
                _ => new SingleMessageTypeResolver(typeof(TMessage))));
 }
 /// <summary>
 /// Register a middleware to serialize the message to a fixed type
 /// </summary>
 /// <param name="middlewares"></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 IProducerMiddlewareConfigurationBuilder AddSingleTypeSerializer <TMessage, TSerializer>(
     this IProducerMiddlewareConfigurationBuilder middlewares,
     Factory <TSerializer> serializerFactory)
     where TSerializer : class, IMessageSerializer
 {
     return(middlewares.AddSerializer(
                serializerFactory,
                resolver => new SingleMessageTypeResolver <TMessage>()));
 }
Exemple #5
0
 /// <summary>
 /// Registers a middleware to serialize messages
 /// </summary>
 /// <param name="middlewares">The middleware configuration builder</param>
 /// <typeparam name="TSerializer">A class that implements <see cref="ISerializer"/></typeparam>
 /// <param name="serializerFactory">A factory to create a <see cref="ISerializer"/></param>
 /// <returns></returns>
 public static IProducerMiddlewareConfigurationBuilder AddSerializer <TSerializer>(
     this IProducerMiddlewareConfigurationBuilder middlewares,
     Factory <TSerializer> serializerFactory)
     where TSerializer : class, ISerializer
 {
     return(middlewares.AddSerializer(
                serializerFactory,
                _ => new DefaultTypeResolver()));
 }
Exemple #6
0
        /// <summary>
        /// Registers a middleware to serialize messages
        /// </summary>
        /// <param name="middlewares">The middleware configuration builder</param>
        /// <typeparam name="TSerializer">A class that implements <see cref="ISerializer"/></typeparam>
        /// <returns></returns>x
        public static IProducerMiddlewareConfigurationBuilder AddSerializer <TSerializer>(
            this IProducerMiddlewareConfigurationBuilder middlewares)
            where TSerializer : class, ISerializer
        {
            middlewares.DependencyConfigurator.AddTransient <TSerializer>();

            return(middlewares.AddSerializer(
                       resolver => resolver.Resolve <TSerializer>(),
                       _ => new DefaultTypeResolver()));
        }
Exemple #7
0
        /// <summary>
        /// Register a middleware to serialize 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 IProducerMiddlewareConfigurationBuilder AddSingleTypeSerializer <TSerializer>(
            this IProducerMiddlewareConfigurationBuilder 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 serialize 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 IProducerMiddlewareConfigurationBuilder AddSingleTypeSerializer <TMessage, TSerializer>(
     this IProducerMiddlewareConfigurationBuilder middlewares)
     where TSerializer : class, IMessageSerializer
 {
     return(middlewares.AddSerializer <TSerializer, SingleMessageTypeResolver <TMessage> >());
 }