internal FileData VisitDictionaryValueNullChecked(string key, FileData node) { FileLocation fileLocation = FileLocation.CreateFromFilesDictionaryKey(key); bool workToDo = false; bool overwriteExistingData = _dataToInsert.Includes(OptionallyEmittedData.OverwriteExistingData); workToDo |= (node.Hashes == null || overwriteExistingData) && _dataToInsert.Includes(OptionallyEmittedData.Hashes); workToDo |= (node.Contents?.Binary == null || overwriteExistingData) && _dataToInsert.Includes(OptionallyEmittedData.TextFiles); workToDo |= (node.Contents?.Binary == null || overwriteExistingData) && _dataToInsert.Includes(OptionallyEmittedData.BinaryFiles); if (workToDo) { fileLocation.TryReconstructAbsoluteUri(_run.OriginalUriBaseIds, out Uri uri); Encoding encoding = null; if (!string.IsNullOrWhiteSpace(node.Encoding)) { try { encoding = Encoding.GetEncoding(node.Encoding); } catch (ArgumentException) { } } int length = node.Length; node = FileData.Create(uri, _dataToInsert, node.MimeType, encoding: encoding); node.Length = length; } return(base.VisitFileData(node)); }