/// <summary>Gets the flags text.</summary> /// <param name="entryFlags">The entry flags.</param> /// <returns>Text representing assembly flags.</returns> private static IEnumerable <string> GetFlagsText(LibZEntry.EntryFlags entryFlags) { if ((entryFlags & LibZEntry.EntryFlags.Unmanaged) != 0) { yield return("Unmanaged"); } if ((entryFlags & LibZEntry.EntryFlags.AnyCPU) != 0) { yield return("AnyCPU"); } else if ((entryFlags & LibZEntry.EntryFlags.X64) != 0) { yield return("x64"); } else { yield return("x86"); } if ((entryFlags & LibZEntry.EntryFlags.Portable) != 0) { yield return("Portable"); } if ((entryFlags & LibZEntry.EntryFlags.SafeLoad) != 0) { yield return("SafeLoad"); } }
/// <summary>Saves entry to file.</summary> /// <param name="resourceName">Name of the resource.</param> /// <param name="assemblyName">Name of the assembly.</param> /// <param name="input">The content of the assembly.</param> /// <param name="flags">The flags.</param> /// <param name="options">The options.</param> private void SetBytes( string resourceName, AssemblyName assemblyName, byte[] input, LibZEntry.EntryFlags flags, AppendOptions options) { var codecName = options.CodecName; lock (_stream) { // prepare entry var entry = new LibZEntry { Id = Hash.Get(resourceName), Hash = Hash.Get(input), AssemblyName = assemblyName, Offset = _magicOffset, Flags = flags, OriginalLength = input.Length, }; // add it to dictionary if (options.Overwrite) { _entries[entry.Id] = entry; } else { _entries.Add(entry.Id, entry); } // encode it var encoded = Encode(codecName, input); if (encoded != null) { entry.CodecName = codecName; input = encoded; } // write it _magicOffset += entry.StorageLength = WriteBytes(_stream, _magicOffset, input); _stream.SetLength(_stream.Position); _containerId = Guid.NewGuid(); _dirty = true; } }