예제 #1
0
        /// <inheritdoc />
        public void SerializeToStream(Stream stream, object item, Type type)
        {
            Guard.Guard.Against.Null(stream, nameof(stream));
            Guard.Guard.Against.Null(item, nameof(item));
            Guard.Guard.Against.Null(type, nameof(type));

            type = CheckType(type, item);

            if (WriterSettings.IsNull())
            {
                new XmlSerializer(type).Serialize(stream, item, Namespaces);
            }
            else
            {
                using (var xmlWriter = XmlWriter.Create(stream, WriterSettings))
                    new XmlSerializer(type).Serialize(xmlWriter, item, Namespaces);
            }
        }
예제 #2
0
        /// <inheritdoc />
        public string SerializeToString(object item, Type type)
        {
            Guard.Guard.Against.Null(item, nameof(item));
            Guard.Guard.Against.Null(type, nameof(type));

            type = CheckType(type, item);

            var builder = new StringBuilder();

            if (WriterSettings.IsNull())
            {
                using (var writer = new EncodedStringWriter(builder))
                    new XmlSerializer(type).Serialize(writer, item, Namespaces);
            }
            else
            {
                using (var stringWriter = new EncodedStringWriter(builder, WriterSettings.Encoding))
                    using (var writer = XmlWriter.Create(stringWriter, WriterSettings))
                        new XmlSerializer(type).Serialize(writer, item, Namespaces);
            }

            return(builder.ToString());
        }