private static string GetSimpleAssemblyName(string refname) { int pos; string name; if (Fusion.ParseAssemblySimpleName(refname, out pos, out name) != ParseAssemblyResult.OK) { throw new ArgumentException(); } return(name); }
public AssemblyName(string assemblyName) { if (assemblyName == null) { throw new ArgumentNullException("assemblyName"); } if (assemblyName == "") { throw new ArgumentException(); } ParsedAssemblyName parsed; switch (Fusion.ParseAssemblyName(assemblyName, out parsed)) { case ParseAssemblyResult.GenericError: case ParseAssemblyResult.DuplicateKey: throw new FileLoadException(); } if (!ParseVersion(parsed.Version, parsed.Retargetable.HasValue, out version)) { throw new FileLoadException(); } name = parsed.Name; if (parsed.Culture != null) { if (parsed.Culture.Equals("neutral", StringComparison.OrdinalIgnoreCase)) { culture = ""; } else if (parsed.Culture == "") { throw new FileLoadException(); } else { culture = new CultureInfo(parsed.Culture).Name; } } if (parsed.PublicKeyToken != null) { if (parsed.PublicKeyToken.Equals("null", StringComparison.OrdinalIgnoreCase)) { publicKeyToken = Empty <byte> .Array; } else if (parsed.PublicKeyToken.Length != 16) { throw new FileLoadException(); } else { publicKeyToken = ParseKey(parsed.PublicKeyToken); } } if (parsed.Retargetable.HasValue) { if (parsed.Culture == null || parsed.PublicKeyToken == null || version == null) { throw new FileLoadException(); } if (parsed.Retargetable.Value) { flags |= AssemblyNameFlags.Retargetable; } } ProcessorArchitecture = parsed.ProcessorArchitecture; if (parsed.WindowsRuntime) { ContentType = AssemblyContentType.WindowsRuntime; } }
// this is equivalent to the Fusion CompareAssemblyIdentity API public bool CompareAssemblyIdentity(string assemblyIdentity1, bool unified1, string assemblyIdentity2, bool unified2, out AssemblyComparisonResult result) { return(Fusion.CompareAssemblyIdentityPure(assemblyIdentity1, unified1, assemblyIdentity2, unified2, out result)); }