示例#1
0
        private static SubjectNameStrategyDelegate GetKeySubjectNameStrategy(IEnumerable <KeyValuePair <string, string> > config)
        {
            var keySubjectNameStrategyString           = config.FirstOrDefault(prop => prop.Key.ToLower() == SchemaRegistryConfig.PropertyNames.SchemaRegistryKeySubjectNameStrategy).Value ?? "";
            SubjectNameStrategy keySubjectNameStrategy = SubjectNameStrategy.Topic;

            if (keySubjectNameStrategyString != "" &&
                !Enum.TryParse <SubjectNameStrategy>(keySubjectNameStrategyString, out keySubjectNameStrategy))
            {
                throw new ArgumentException($"Unknown KeySubjectNameStrategy: {keySubjectNameStrategyString}");
            }
            return(keySubjectNameStrategy.ToDelegate());
        }
 /// <summary>
 ///     Helper method to construct the value subject name given the specified parameters.
 /// </summary>
 public static string ConstructValueSubjectName(this SubjectNameStrategy strategy, string topic, string recordType = null)
 => strategy.ToDelegate()(new SerializationContext(MessageComponentType.Value, topic), recordType);