Esempio n. 1
0
        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);
        }
Esempio n. 2
0
        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;
            }
        }
Esempio n. 3
0
 // 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));
 }