public void SetOutput(Stream stream, bool includeComments, string[]?inclusivePrefixes)
{
if (stream == null)
{
throw System.Runtime.Serialization.DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull(nameof(stream));
}
if (_writer == null)
{
_writer = new XmlUTF8NodeWriter(s_isEscapedAttributeChar, s_isEscapedElementChar);
}
_writer.SetOutput(stream, false, null);
if (_elementStream == null)
{
_elementStream = new MemoryStream();
}
if (_elementWriter == null)
{
_elementWriter = new XmlUTF8NodeWriter(s_isEscapedAttributeChar, s_isEscapedElementChar);
}
_elementWriter.SetOutput(_elementStream, false, null);
if (_xmlnsAttributes == null)
{
_xmlnsAttributeCount = 0;
_xmlnsOffset = 0;
WriteXmlnsAttribute("xml", "http://www.w3.org/XML/1998/namespace");
WriteXmlnsAttribute("xmlns", xmlnsNamespace);
WriteXmlnsAttribute(string.Empty, string.Empty);
_xmlnsStartOffset = _xmlnsOffset;
for (int i = 0; i < 3; i++)
{
_xmlnsAttributes[i].referred = true;
}
}
else
{
_xmlnsAttributeCount = 3;
_xmlnsOffset = _xmlnsStartOffset;
}
_depth = 0;
_inStartElement = false;
_includeComments = includeComments;
_inclusivePrefixes = null;
if (inclusivePrefixes != null)
{
_inclusivePrefixes = new string[inclusivePrefixes.Length];
for (int i = 0; i < inclusivePrefixes.Length; ++i)
{
if (inclusivePrefixes[i] == null)
{
throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgument(SR.InvalidInclusivePrefixListCollection);
}
_inclusivePrefixes[i] = inclusivePrefixes[i];
}
}
}