示例#1
0
        private short GetAssemblyId(IBamlAssembly assembly)
        {
            switch (assembly.Kind)
            {
            case BamlAssemblyKind.Declaration:
            {
                short assemblyId;
                if (!_assemblyToID.TryGetValue((BamlAssemblyInfo)assembly, out assemblyId))
                {
                    throw new BamlException(SR.BamlLoadError);
                }

                return(assemblyId);
            }

            case BamlAssemblyKind.Known:
            {
                short assemblyId = (short)((BamlKnownAssembly)assembly).KnownCode;
                return((short)-assemblyId);
            }

            default:
                throw new NotImplementedException();
            }
        }
        public static AssemblyReference ToReference(this IBamlAssembly bamlAssembly, Assembly ownerAssembly, bool throwOnFailure = false)
        {
            var assemblyRef = bamlAssembly.ToReference(ownerAssembly);

            if (assemblyRef == null)
            {
                if (throwOnFailure)
                {
                    throw new BamlException(SR.BamlLoadError);
                }

                return(null);
            }

            return(assemblyRef);
        }
        public static Assembly Resolve(this IBamlAssembly bamlAssembly, Assembly ownerAssembly, bool throwOnFailure = false)
        {
            var assembly = bamlAssembly.Resolve(ownerAssembly);

            if (assembly == null)
            {
                if (throwOnFailure)
                {
                    throw new ResolveReferenceException(string.Format(Net.SR.AssemblyResolveError, bamlAssembly.ToString()));
                }

                return(null);
            }

            return(assembly);
        }
 public BamlPIMapping(string xmlNamespace, string clrNamespace, IBamlAssembly assembly)
 {
     _xmlNamespace = xmlNamespace;
     _clrNamespace = clrNamespace;
     _assembly     = assembly;
 }
 private Assembly Resolve(IBamlAssembly bamlAssembly)
 {
     return(bamlAssembly.Resolve(_assembly));
 }
示例#6
0
 public BamlTypeInfo(string name, IBamlAssembly assembly, BamlTypeFlags flags)
 {
     _name     = name;
     _assembly = assembly;
     _flags    = flags;
 }
示例#7
0
 public BamlTypeInfo(string name, IBamlAssembly assembly)
     : this(name, assembly, BamlTypeFlags.None)
 {
 }