Exemplo n.º 1
0
        /// <summary>
        /// Returns the YAML representation of a collection of <see cref="DnsRecord"/>.
        /// </summary>
        /// <typeparam name="TWriter">The type of the <paramref name="writer"/>.</typeparam>
        /// <returns>The <paramref name="writer"/> to allow for fluent usage.</returns>
        public static TWriter SerializeYaml <TWriter>(
            this TWriter writer,
            IEnumerable <DnsRecord> dnsRecords,
            string containerName = null)
            where TWriter : TextWriter
        {
            if (writer == null)
            {
                throw new ArgumentNullException(nameof(writer));
            }
            if (dnsRecords == null)
            {
                throw new ArgumentNullException(nameof(dnsRecords));
            }

            var formatter = new YamlJsonFormatter();

            JContainer jsonRecords = JArray.FromObject(dnsRecords.Select(formatter.Process));

            if (!string.IsNullOrWhiteSpace(containerName))
            {
                jsonRecords = new JObject(new JProperty(containerName, jsonRecords));
            }

            var serializer = new Serializer(SerializationOptions.DisableAliases);

            serializer.RegisterTypeConverter(new JsonYamlTypeConverter());
            serializer.Serialize(writer, jsonRecords);

            return(writer);
        }
Exemplo n.º 2
0
        /// <summary>
        /// Returns the YAML representation of a <see cref="Zone"/>.
        /// </summary>
        /// <typeparam name="TWriter">The type of the <paramref name="writer"/>.</typeparam>
        /// <returns>The <paramref name="writer"/> to allow for fluent usage.</returns>
        public static TWriter SerializeYaml <TWriter>(this TWriter writer, Zone zone)
            where TWriter : TextWriter
        {
            if (writer == null)
            {
                throw new ArgumentNullException(nameof(writer));
            }
            if (zone == null)
            {
                throw new ArgumentNullException(nameof(zone));
            }

            var formatter = new YamlJsonFormatter();

            JObject jObject = formatter.Process(zone);

            var serializer = new Serializer(SerializationOptions.DisableAliases);

            serializer.RegisterTypeConverter(new JsonYamlTypeConverter());
            serializer.Serialize(writer, jObject);

            return(writer);
        }