/* Copyright (C) 2014-2019 de4dot@gmail.com This file is part of dnSpy dnSpy is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. dnSpy is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with dnSpy. If not, see . */ using System; using System.Text; namespace dnSpy.Debugger.DotNet.Metadata { /// /// A read only assembly name /// public interface IDmdAssemblyName { /// /// Gets the simple name /// string? Name { get; } /// /// Gets the version /// Version? Version { get; } /// /// Gets the culture name /// string? CultureName { get; } /// /// Gets the flags /// DmdAssemblyNameFlags RawFlags { get; } /// /// Gets the flags. The content type and processor architecture bits are ignored, use instead /// DmdAssemblyNameFlags Flags { get; } /// /// Gets the processor architecture /// DmdProcessorArchitecture ProcessorArchitecture { get; } /// /// Gets the content type /// DmdAssemblyContentType ContentType { get; } /// /// Gets the public key /// /// byte[]? GetPublicKey(); /// /// Gets the public key token /// /// byte[]? GetPublicKeyToken(); /// /// Gets the hash algorithm /// DmdAssemblyHashAlgorithm HashAlgorithm { get; } /// /// Gets the full assembly name /// string FullName { get; } /// /// Creates a read only assembly name /// /// DmdReadOnlyAssemblyName AsReadOnly(); } static class DmdAssemblyNameExtensions { public static void FormatFullNameTo(this IDmdAssemblyName self, StringBuilder sb) => DmdAssemblyNameFormatter.Format(sb, self.Name, self.Version, self.CultureName, self.GetPublicKeyToken(), self.RawFlags, isPublicKeyToken: true); } }