System.Reflection.PortableExecutable.PEBuilder
namespace System.Reflection.PortableExecutable
{
internal abstract class PEBuilder
{
protected struct Section
{
public readonly string Name;
public readonly SectionCharacteristics Characteristics;
public Section(string name, SectionCharacteristics characteristics);
}
public PEHeaderBuilder Header { get; }
public Func<IEnumerable<Blob>, BlobContentId> IdProvider { get; }
public bool IsDeterministic { get; }
protected PEBuilder(PEHeaderBuilder header, Func<IEnumerable<Blob>, BlobContentId> deterministicIdProvider);
protected ImmutableArray<Section> GetSections();
protected abstract ImmutableArray<Section> CreateSections();
protected abstract BlobBuilder SerializeSection(string name, SectionLocation location);
public void Serialize(BlobBuilder builder, out BlobContentId contentId);
}
}