internal static string SerializeValueAssignmentDeclaration(string keyString, int indentation, int objectDepth, EFormatOption keyFormatOption) { return(new string('\t', indentation) + new string(SpecialCharacters.objectDepth, objectDepth) + " " + SpecialCharacters.FormatStringValue(keyString, keyFormatOption) + $" {SpecialCharacters.valueAssignment} "); }
internal static string SerializeSingleValueType(SerializationInfo serializationInfo, EFormatOption valueFormatOption) { if (serializationInfo.dataInstance == null) { return(SpecialCharacters.FormatStringValue(null, valueFormatOption)); } if (!serializationInfo.eDataType.IsSingleValueType()) { throw new ArgumentOutOfRangeException("eDataType: " + serializationInfo.eDataType + " is not a single-value Type!"); } string result = TypeDescriptor.GetConverter(serializationInfo.dataType).ConvertToInvariantString(serializationInfo.dataInstance); return(SpecialCharacters.FormatStringValue(result, valueFormatOption)); }
public void Test_Serialize_SpecialCharOptions() { const string normalString = "asdf"; string specialCharacterString = "" + SpecialCharacters.objectDepth + SpecialCharacters.valueAssignment + SpecialCharacters.objectAssignment + SpecialCharacters.nullChar + SpecialCharacters.stringChar + SpecialCharacters.escapeChar; ExampleNullableConfig exampleNullableConfig = new ExampleNullableConfig { stringValue = normalString, stringValue2 = specialCharacterString, stringList = new List <string> { normalString, specialCharacterString }, subClassList = new List <ExampleNullableConfig.ExampleNullableSubClass> { new ExampleNullableConfig.ExampleNullableSubClass { a = normalString }, new ExampleNullableConfig.ExampleNullableSubClass { a = specialCharacterString } }, stringDict = new Dictionary <string, string> { { normalString, normalString }, { specialCharacterString, specialCharacterString } }, subClassDict = new Dictionary <string, ExampleNullableConfig.ExampleNullableSubClass> { { normalString, new ExampleNullableConfig.ExampleNullableSubClass { a = normalString } }, { specialCharacterString, new ExampleNullableConfig.ExampleNullableSubClass { a = specialCharacterString } } } }; string[] ExpectedLines(EFormatOption keyOpt, EFormatOption valueOpt) { return(new[] { $"- {SpecialCharacters.FormatStringValue("intValue", keyOpt)} = {SpecialCharacters.FormatStringValue("1", valueOpt)}", $"- {SpecialCharacters.FormatStringValue("stringValue", keyOpt)} = {SpecialCharacters.FormatStringValue(normalString, valueOpt)}", $"- {SpecialCharacters.FormatStringValue("stringValue2", keyOpt)} = {SpecialCharacters.FormatStringValue(specialCharacterString, valueOpt)}", $"- {SpecialCharacters.FormatStringValue("intList", keyOpt)} :", $"-- {SpecialCharacters.FormatStringValue("1", valueOpt)}", $"-- {SpecialCharacters.FormatStringValue("1", valueOpt)}", $"- {SpecialCharacters.FormatStringValue("stringList", keyOpt)} :", $"-- {SpecialCharacters.FormatStringValue(normalString, valueOpt)}", $"-- {SpecialCharacters.FormatStringValue(specialCharacterString, valueOpt)}", $"- {SpecialCharacters.FormatStringValue("subClassList", keyOpt)} :", "-- :", $"--- {SpecialCharacters.FormatStringValue("a", keyOpt)} = {SpecialCharacters.FormatStringValue(normalString, valueOpt)}", $"--- {SpecialCharacters.FormatStringValue("b", keyOpt)} = {SpecialCharacters.FormatStringValue("1", valueOpt)}", "-- :", $"--- {SpecialCharacters.FormatStringValue("a", keyOpt)} = {SpecialCharacters.FormatStringValue(specialCharacterString, valueOpt)}", $"--- {SpecialCharacters.FormatStringValue("b", keyOpt)} = {SpecialCharacters.FormatStringValue("1", valueOpt)}", $"- {SpecialCharacters.FormatStringValue("intDict", keyOpt)} :", $"-- {SpecialCharacters.FormatStringValue("1", keyOpt)} = {SpecialCharacters.FormatStringValue("1", valueOpt)}", $"-- {SpecialCharacters.FormatStringValue("2", keyOpt)} = {SpecialCharacters.FormatStringValue("2", valueOpt)}", $"- {SpecialCharacters.FormatStringValue("stringDict", keyOpt)} :", $"-- {SpecialCharacters.FormatStringValue(normalString, keyOpt)} = {SpecialCharacters.FormatStringValue(normalString, valueOpt)}", $"-- {SpecialCharacters.FormatStringValue(specialCharacterString, keyOpt)} = {SpecialCharacters.FormatStringValue(specialCharacterString, valueOpt)}", $"- {SpecialCharacters.FormatStringValue("subClassDict", keyOpt)} :", $"-- {SpecialCharacters.FormatStringValue(normalString, keyOpt)} :", $"--- {SpecialCharacters.FormatStringValue("a", keyOpt)} = {SpecialCharacters.FormatStringValue(normalString, valueOpt)}", $"--- {SpecialCharacters.FormatStringValue("b", keyOpt)} = {SpecialCharacters.FormatStringValue("1", valueOpt)}", $"-- {SpecialCharacters.FormatStringValue(specialCharacterString, keyOpt)} :", $"--- {SpecialCharacters.FormatStringValue("a", keyOpt)} = {SpecialCharacters.FormatStringValue(specialCharacterString, valueOpt)}", $"--- {SpecialCharacters.FormatStringValue("b", keyOpt)} = {SpecialCharacters.FormatStringValue("1", valueOpt)}", }); } foreach (EFormatOption keyOpt in (EFormatOption[])Enum.GetValues(typeof(EFormatOption))) { foreach (EFormatOption valueOpt in (EFormatOption[])Enum.GetValues(typeof(EFormatOption))) { string[] resultLines = new ConfigSerializer( new ConfigOptions { keyFormatOption = keyOpt, valueFormatOption = valueOpt }).Serialize(exampleNullableConfig).ToArray(); Assert.AreEqual(ExpectedLines(keyOpt, valueOpt), resultLines, "keyOpt: {0}, valueOpt: {1}", keyOpt, valueOpt); } } }