/// <summary> /// Initialize a new instance of the ProtobufSerializer class. /// </summary> public ProtobufSerializer(ISchemaRegistryClient schemaRegistryClient, ProtobufSerializerConfig config = null) { this.schemaRegistryClient = schemaRegistryClient; if (config == null) { this.referenceSubjectNameStrategy = ReferenceSubjectNameStrategy.ReferenceName.ToDelegate(); return; } var nonProtobufConfig = config.Where(item => !item.Key.StartsWith("protobuf.")); if (nonProtobufConfig.Count() > 0) { throw new ArgumentException($"ProtobufSerializer: unknown configuration parameter {nonProtobufConfig.First().Key}"); } if (config.BufferBytes != null) { this.initialBufferSize = config.BufferBytes.Value; } if (config.AutoRegisterSchemas != null) { this.autoRegisterSchema = config.AutoRegisterSchemas.Value; } if (config.SubjectNameStrategy != null) { this.subjectNameStrategy = config.SubjectNameStrategy.Value.ToDelegate(); } this.referenceSubjectNameStrategy = config.ReferenceSubjectNameStrategy == null ? ReferenceSubjectNameStrategy.ReferenceName.ToDelegate() : config.ReferenceSubjectNameStrategy.Value.ToDelegate(); }
/// <summary> /// Initialize a new instance of the ProtobufSerializer class. /// </summary> public ProtobufSerializer(ISchemaRegistryClient schemaRegistryClient, ProtobufSerializerConfig config = null) { this.schemaRegistryClient = schemaRegistryClient; if (config == null) { this.referenceSubjectNameStrategy = ReferenceSubjectNameStrategy.ReferenceName.ToDelegate(); return; } var nonProtobufConfig = config.Where(item => !item.Key.StartsWith("protobuf.")); if (nonProtobufConfig.Count() > 0) { throw new ArgumentException($"ProtobufSerializer: unknown configuration parameter {nonProtobufConfig.First().Key}"); } if (config.BufferBytes != null) { this.initialBufferSize = config.BufferBytes.Value; } if (config.AutoRegisterSchemas != null) { this.autoRegisterSchema = config.AutoRegisterSchemas.Value; } if (config.NormalizeSchemas != null) { this.normalizeSchemas = config.NormalizeSchemas.Value; } if (config.UseLatestVersion != null) { this.useLatestVersion = config.UseLatestVersion.Value; } if (config.SkipKnownTypes != null) { this.skipKnownTypes = config.SkipKnownTypes.Value; } if (config.UseDeprecatedFormat != null) { this.useDeprecatedFormat = config.UseDeprecatedFormat.Value; } if (config.SubjectNameStrategy != null) { this.subjectNameStrategy = config.SubjectNameStrategy.Value.ToDelegate(); } this.referenceSubjectNameStrategy = config.ReferenceSubjectNameStrategy == null ? ReferenceSubjectNameStrategy.ReferenceName.ToDelegate() : config.ReferenceSubjectNameStrategy.Value.ToDelegate(); if (this.useLatestVersion && this.autoRegisterSchema) { throw new ArgumentException($"ProtobufSerializer: cannot enable both use.latest.version and auto.register.schemas"); } }