Ejemplo n.º 1
0
        private static Assembly GetAssembly(string assemblyName)
        {
            Debug.Assert(!String.IsNullOrEmpty(assemblyName));
            string[] parts = assemblyName.Split(',');

            if ((parts.Length != 1) && (parts.Length != 4))
            {
                Throw404();
            }

            AssemblyName realName = new AssemblyName();

            realName.Name = parts[0];
            if (parts.Length == 4)
            {
                realName.Version = new Version(parts[1]);
                string cultureString = parts[2];
                realName.CultureInfo = (cultureString.Length > 0) ?
                                       new CultureInfo(cultureString) :
                                       CultureInfo.InvariantCulture;
                realName.SetPublicKeyToken(HexParser.Parse(parts[3]));
            }
            Assembly assembly = null;

            try {
                assembly = Assembly.Load(realName);
            }
            catch (FileNotFoundException fnf) {
                Throw404(fnf);
            }
            catch (FileLoadException fl) {
                Throw404(fl);
            }
            catch (BadImageFormatException badImage) {
                Throw404(badImage);
            }

            return(assembly);
        }