Baml6Assembly.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Markup / Baml2006 / Baml6Assembly.cs / 1305600 / Baml6Assembly.cs

                            using System; 
using System.Collections.Generic;
using System.Reflection;
using MS.Internal.WindowsBase;
 
namespace System.Windows.Baml2006
{ 
    class Baml6Assembly 
    {
        // Information needed to resolve a BamlAssembly to a CLR Assembly 
        public readonly string Name;
        private Assembly _assembly;

        ///  
        /// 
        /// A fully qualified assembly name 
        public Baml6Assembly(string name) 
        {
            if (name == null) 
            {
                throw new ArgumentNullException("name");
            }
 
            Name = name;
            _assembly = null; 
        } 

        public Baml6Assembly(Assembly assembly) 
        {
            if (assembly == null)
            {
                throw new ArgumentNullException("assembly"); 
            }
 
            Name = null; 
            _assembly = assembly;
        } 

        public Assembly Assembly
        {
            get 
            {
                if (_assembly != null) 
                { 
                    return _assembly;
                } 

                AssemblyName assemblyName = new AssemblyName(Name);
                _assembly = SafeSecurityHelper.GetLoadedAssembly(assemblyName);
                if (_assembly == null) 
                {
                    byte[] publicKeyToken = assemblyName.GetPublicKeyToken(); 
                    if (assemblyName.Version != null || assemblyName.CultureInfo != null || publicKeyToken != null) 
                    {
                        try 
                        {
                            _assembly = Assembly.Load(assemblyName.FullName);
                        }
                        catch 
                        {
                            AssemblyName shortName = new AssemblyName(assemblyName.Name); 
                            if (publicKeyToken != null) 
                            {
                                shortName.SetPublicKeyToken(publicKeyToken); 
                            }
                            _assembly = Assembly.Load(shortName);
                        }
                    } 
                    else
                    { 
                        _assembly = Assembly.LoadWithPartialName(assemblyName.Name); 
                    }
                } 
                return _assembly;
            }
        }
    } 

} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.


                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK