Esempio n. 1
0
        private static void WriteNonPrimitive(WriterState writer, object val)
        {
            switch (val)
            {
            case IDictionary <string, object> dictAsObj:    // treat IDictionary<string, object> as Object type
                WriteDictionaryAsObject(writer, dictAsObj);
                break;

            case IDictionary _ when GenericWriter.WriteDictionary(writer, val):
                break;

            case IDictionary dictionary:
                WriteDictionary(writer, dictionary);
                break;

            case ICollection _ when GenericWriter.WriteDictionary(writer, val):
                break;

            case ICollection list:
                WriteList(writer, list);
                break;

            case IReadOnlyDictionary <string, object> roDictAsObj:    // treat IReadOnlyDictionary<string, object> as Object type
                WriteReadOnlyDictionaryAsObject(writer, roDictAsObj);
                break;

            case IEnumerable _ when GenericWriter.WriteReadOnlyDictionary(writer, val):
                break;

            case IEnumerable enumerable:
                WriteEnumerable(writer, enumerable);
                break;

            default:
                WriteObject(writer, val);
                break;
            }
        }
Esempio n. 2
0
 public void Write(WriterState writer, T val) => GenericWriter.WriteReadOnlyDictionary(writer, val);