/// <summary> /// Converts a <see cref="Krb5Config"/> instance into a <see cref="ConfigurationSectionList" /> for possible future serialization. /// </summary> /// <param name="config"></param> /// <returns></returns> public static ConfigurationSectionList FromConfigObject(Krb5Config config) { if (config is null) { throw new ArgumentNullException(nameof(config)); } var list = new ConfigurationSectionList(); foreach (var property in config.GetType().GetProperties()) { var section = property.GetValue(config); list.Add(AddSection(section, property)); } return(list); }
/// <summary> /// Converts a <see cref="Krb5Config"/> instance into a <see cref="ConfigurationSectionList" /> for possible future serialization. /// </summary> /// <param name="config">The configuration instance to load</param> /// <param name="serializationConfig">Serializer configuration options</param> /// <returns>Returns a sectioned version of the configuration</returns> public static ConfigurationSectionList FromConfigObject(Krb5Config config, Krb5ConfigurationSerializationConfig serializationConfig) { if (config is null) { throw new ArgumentNullException(nameof(config)); } if (serializationConfig == null) { serializationConfig = new Krb5ConfigurationSerializationConfig(); } var list = new ConfigurationSectionList(); foreach (var property in config.GetType().GetProperties(PublicInstancePropertyFlags)) { var section = property.GetValue(config); list.Add(AddSection(section, property, serializationConfig)); } return(list); }
/// <summary> /// Serialize a configuration object instance into a configuration file. /// </summary> /// <param name="configuration">The configuration to serialize.</param> /// <param name="serializationConfig">Optional configuration that describes the format requested.</param> /// <returns>Returns the configuration in string form.</returns> public static string Serialize(Krb5Config configuration, Krb5ConfigurationSerializationConfig serializationConfig = null) { return(Serialize(ConfigurationSectionList.FromConfigObject(configuration), serializationConfig)); }
/// <summary> /// Converts a <see cref="Krb5Config"/> instance into a <see cref="ConfigurationSectionList" /> for possible future serialization. /// </summary> /// <param name="config">The configuration instance to load</param> /// <returns>Returns a sectioned version of the configuration</returns> public static ConfigurationSectionList FromConfigObject(Krb5Config config) => FromConfigObject(config, null);