System.Xml.Xsl.Xslt.XsltLoader.LoadMsAssembly C# (CSharp) Method

LoadMsAssembly() private method

private LoadMsAssembly ( ScriptClass scriptClass ) : void
scriptClass ScriptClass
return void
        private void LoadMsAssembly(ScriptClass scriptClass)
        {
            _input.GetAttributes(_assemblyAttributes);

            string name = ParseStringAttribute(0, "name");
            string href = ParseStringAttribute(1, "href");

            if ((name != null) == (href != null))
            {
                ReportError(/*[XT_046]*/SR.Xslt_AssemblyNameHref);
            }
            else
            {
                string asmLocation = null;
                if (name != null)
                {
                    try
                    {
                        AssemblyName asmName = new AssemblyName(name);
                        Assembly.Load(asmName);
                        asmLocation = asmName.Name + ".dll";
                    }
                    catch
                    {
                        AssemblyName asmName = new AssemblyName(name);

                        // If the assembly is simply named, let CodeDomProvider and Fusion resolve it
                        byte[] publicKeyToken = asmName.GetPublicKeyToken();
                        if ((publicKeyToken == null || publicKeyToken.Length == 0) && asmName.Version == null)
                        {
                            asmLocation = asmName.Name + ".dll";
                        }
                        else
                        {
                            throw;
                        }
                    }
                }
                else
                {
                    Debug.Assert(href != null);
                    asmLocation = Assembly.LoadFrom(ResolveUri(href, _input.BaseUri).ToString()).Location;
                    scriptClass.refAssembliesByHref = true;
                }

                if (asmLocation != null)
                {
                    scriptClass.refAssemblies.Add(asmLocation);
                }
            }

            CheckNoContent();
        }