Exemplo n.º 1
0
        /// <summary>
        /// Parse into a new instance <typeparam name="T"/> without manually creating a XmlReadBuffer
        /// </summary>
        /// <param name="span">Text to parse</param>
        /// <param name="cdataMode"><see cref="m_cdataMode"/></param>
        /// <typeparam name="T">Type to parse</typeparam>
        /// <returns>The created instance</returns>
        public static T ReadStatic <T>(ReadOnlySpan <char> span, CDataMode cdataMode = CDataMode.On) where T : IXmlSerializable, new()
        {
            var reader = new XmlReadBuffer
            {
                m_cdataMode = cdataMode
            };

            return(reader.Read <T>(span));
        }
Exemplo n.º 2
0
 internal Log4NetTextFormatterOptions(IFormatProvider?formatProvider, CDataMode cDataMode, XmlQualifiedName?xmlNamespace, XmlWriterSettings xmlWriterSettings, PropertyFilter filterProperty, ExceptionFormatter formatException)
 {
     FormatProvider    = formatProvider;
     CDataMode         = cDataMode;
     XmlNamespace      = xmlNamespace;
     XmlWriterSettings = xmlWriterSettings;
     FilterProperty    = filterProperty;
     FormatException   = formatException;
 }
Exemplo n.º 3
0
        /// <summary>
        /// Actual XmlWriteBuffer constructor
        /// </summary>
        /// <param name="_">blank parameter</param>
        // ReSharper disable once UnusedParameter.Local
        private XmlWriteBuffer(int _ = 0)
        {
            m_pendingNodeHeadClose = false;
            m_buffer = ArrayPool <char> .Shared.Rent(1024);

            m_bufferSpan    = m_buffer;
            m_currentOffset = 0;

            m_cdataMode = CDataMode.On;
        }
Exemplo n.º 4
0
        public static void SerializeStringBody(CDataMode cdataMode)
        {
            var truth = new StringBody()
            {
                m_fullBody = "asdjhasjkdhakjsdhjkahsdjhkasdhasd<>&&"
            };
            var result = XmlWriteBuffer.SerializeStatic(truth, cdataMode);

            var deserialized = XmlReadBuffer.ReadStatic <StringBody>(result, cdataMode);

            Assert.Equal(truth.m_fullBody, deserialized.m_fullBody);
        }
Exemplo n.º 5
0
    public Task MessageCDataMode(CDataMode mode, bool needsEscaping)
    {
        // Arrange
        using var output = new StringWriter();
        var logEvent  = CreateLogEvent(messageTemplate: needsEscaping ? ">> Hello from Serilog <<" : "Hello from Serilog");
        var formatter = new Log4NetTextFormatter(options => options.UseCDataMode(mode));

        // Act
        formatter.Format(logEvent, output);

        // Assert
        return(Verify(output).UseParameters(mode, needsEscaping));
    }
Exemplo n.º 6
0
        public static void SerializeStringBodies(CDataMode cdataMode)
        {
            var truth = new StringBodies
            {
                m_a     = "blah1<>&&",
                m_b     = "blah2",
                m_null  = null,
                m_empty = string.Empty
            };
            var result = XmlWriteBuffer.SerializeStatic(truth, cdataMode);

            var deserialized = XmlReadBuffer.ReadStatic <StringBodies>(result, cdataMode);

            Assert.Equal(truth.m_a, deserialized.m_a);
            Assert.Equal(truth.m_b, deserialized.m_b);
            //Assert.Equal(truth.m_null, deserialized.m_null); // todo: do we want to avoid writing nulls?? currently empty string
            Assert.Equal(truth.m_empty, deserialized.m_empty);
        }
Exemplo n.º 7
0
        /// <summary>
        /// Serialize a baseclass of <see cref="IXmlSerializable"/> to XML text
        /// </summary>
        /// <param name="obj">The object to serialize</param>
        /// <param name="useCData">Should text be written as CDATA</param>
        /// <returns>Serialized XML</returns>
        public static string SerializeStatic(IXmlSerializable obj, CDataMode cdataMode = CDataMode.On)
        {
            if (obj == null)
            {
                throw new ArgumentNullException(nameof(obj));
            }
            var writer = Create();

            writer.m_cdataMode = cdataMode;
            try
            {
                obj.Serialize(ref writer);
                var str = writer.ToStr();
                return(str);
            } finally
            {
                writer.Dispose();
            }
        }