/// <summary> /// Encrypts an XML element while writing. /// </summary> /// <param name="writer">The original <see cref="XmlDictionaryWriter"/>.</param> /// <param name="credentials">The <see cref="EncryptingCredentials"/> used to encrypt the XML element.</param> /// <param name="startEncryption">A delegate to decide on what element encryption should start.</param> public EncryptingXmlDictionaryWriter(XmlDictionaryWriter writer, EncryptingCredentials credentials, StartEncryptionDelegate startEncryption) { _writer = writer; _credentials = credentials; _startEncryption = startEncryption; var settings = _writer.Settings ?? new XmlWriterSettings { OmitXmlDeclaration = true, Encoding = new UTF8Encoding(false) }; _elements = 0; _stream = new MemoryStream(); _innerWriter = CreateDictionaryWriter(Create(_stream, settings)); _encryptedStream = new MemoryStream(); _encryptingWriter = CreateDictionaryWriter(Create(_encryptedStream, settings)); InnerWriter = _innerWriter; }
/// <summary> /// Encrypts an XML element while writing. /// </summary> /// <param name="writer">The original <see cref="XmlWriter"/>.</param> /// <param name="credentials">The <see cref="EncryptingCredentials"/> used to encrypt the XML element.</param> /// <param name="startEncryption">A delegate to decide on what element encryption should start.</param> public EncryptingXmlDictionaryWriter(XmlWriter writer, EncryptingCredentials credentials, StartEncryptionDelegate startEncryption) : this(CreateDictionaryWriter(writer), credentials, startEncryption) { }