public AssemblyName(string assemblyName) { if (assemblyName == null) { throw new ArgumentNullException(nameof(assemblyName)); } RuntimeAssemblyName runtimeAssemblyName = AssemblyNameParser.Parse(assemblyName); runtimeAssemblyName.CopyToAssemblyName(this); }
public static void Parse(AssemblyName blank, string s) { if (s == null) { throw new ArgumentNullException(nameof(s)); } RuntimeAssemblyName runtimeAssemblyName = Parse(s); runtimeAssemblyName.CopyToAssemblyName(blank); }
public AssemblyName(string assemblyName) : this() { if (assemblyName == null) throw new ArgumentNullException(nameof(assemblyName)); if ((assemblyName.Length == 0) || (assemblyName[0] == '\0')) throw new ArgumentException(SR.Format_StringZeroLength); _name = assemblyName; RuntimeAssemblyName runtimeAssemblyName = AssemblyNameParser.Parse(_name); runtimeAssemblyName.CopyToAssemblyName(this); }
// // Ensure that the PublicKeyOrPublicKeyToken (if non-null) is the short token form. // public static RuntimeAssemblyName CanonicalizePublicKeyToken(this RuntimeAssemblyName name) { AssemblyNameFlags flags = name.Flags; if ((flags & AssemblyNameFlags.PublicKey) == 0) { return(name); } flags &= ~AssemblyNameFlags.PublicKey; byte[] publicKeyOrToken = name.PublicKeyOrToken; if (publicKeyOrToken != null) { publicKeyOrToken = ComputePublicKeyToken(publicKeyOrToken); } return(new RuntimeAssemblyName(name.Name, name.Version, name.CultureName, flags, publicKeyOrToken)); }
public static string ComputeDisplayName(RuntimeAssemblyName a) { const int PUBLIC_KEY_TOKEN_LEN = 8; if (string.IsNullOrEmpty(a.Name)) { throw new FileLoadException(); } StringBuilder sb = new StringBuilder(); if (a.Name != null) { sb.AppendQuoted(a.Name); } if (a.Version != null) { Version canonicalizedVersion = a.Version.CanonicalizeVersion(); if (canonicalizedVersion.Major != ushort.MaxValue) { sb.Append(", Version="); sb.Append(canonicalizedVersion.Major); if (canonicalizedVersion.Minor != ushort.MaxValue) { sb.Append('.'); sb.Append(canonicalizedVersion.Minor); if (canonicalizedVersion.Build != ushort.MaxValue) { sb.Append('.'); sb.Append(canonicalizedVersion.Build); if (canonicalizedVersion.Revision != ushort.MaxValue) { sb.Append('.'); sb.Append(canonicalizedVersion.Revision); } } } } } string cultureName = a.CultureName; if (cultureName != null) { if (cultureName.Length == 0) { cultureName = "neutral"; } sb.Append(", Culture="); sb.AppendQuoted(cultureName); } byte[] pkt = a.PublicKeyOrToken; if (pkt != null) { if (pkt.Length > PUBLIC_KEY_TOKEN_LEN) { throw new ArgumentException("Invalid token length", nameof(a)); } sb.Append(", PublicKeyToken="); if (pkt.Length == 0) { sb.Append("null"); } else { foreach (byte b in pkt) { sb.Append(b.ToString("x2", CultureInfo.InvariantCulture)); } } } if (0 != (a.Flags & AssemblyNameFlags.Retargetable)) { sb.Append(", Retargetable=Yes"); } AssemblyContentType contentType = a.Flags.ExtractAssemblyContentType(); if (contentType == AssemblyContentType.WindowsRuntime) { sb.Append(", ContentType=WindowsRuntime"); } // NOTE: By design (desktop compat) AssemblyName.FullName and ToString() do not include ProcessorArchitecture. return(sb.ToString()); }