コード例 #1
0
 internal CliNamespaceDictionary(CliAssembly owner, INamespaceParent parent, CliNamespaceKeyedTree info)
     : base(info.Keys)
 {
     this.owner  = owner;
     this.info   = info;
     this.parent = parent;
 }
コード例 #2
0
        public CliAbstractAssemblyReferences(CliAssembly assembly)
        {
            var referenceTables = assembly.ObtainAssemblyRefTables().ToArray();
            List <ICliMetadataAssemblyRefTableRow> referenceSources    = new List <ICliMetadataAssemblyRefTableRow>();
            HashSet <IAssemblyUniqueIdentifier>    distinctIdentifiers = new HashSet <IAssemblyUniqueIdentifier>();

            foreach (var table in referenceTables)
            {
                var copy = table.ToArray();
                for (int copyIndex = 0; copyIndex < copy.Length; copyIndex++)
                {
                    var current = copy[copyIndex];
                    if (distinctIdentifiers.Add(CliCommon.GetAssemblyUniqueIdentifier(current).Item2))
                    {
                        referenceSources.Add(current);
                    }
                }
            }
            this.referenceSources = referenceSources.ToArray();
            this.identifiers      = new ArrayReadOnlyCollection <IAssemblyUniqueIdentifier>(distinctIdentifiers.ToArray());
            int mscorLib = -1;

            for (int i = 0; i < identifiers.Count; i++)
            {
                if (identifiers[i].Name == "mscorlib")
                {
                    mscorLib = i;
                    break;
                }
            }

            this.assembly   = assembly;
            this.references = new IAssembly[this.identifiers.Count];
        }
コード例 #3
0
        //#endregion

        //#region IDisposable Members

        public void Dispose()
        {
            lock (this.syncObject)
            {
                this.owningAssembly = null;
                this.namespaceInfo  = null;
            }
        }
コード例 #4
0
 public CliAssemblyReferences(CliAssembly owner)
 {
     this.owner           = owner;
     this.referenceTables = owner.ObtainAssemblyRefTables().ToArray();
     this.vData           = new ICliAssembly[this.Count];
     this.kData           = new ICliMetadataAssemblyRefTableRow[this.Count];
     this.vCheck          = new bool[this.Count];
 }
コード例 #5
0
 public CliNamespaceDeclaration(CliAssembly owningAssembly, INamespaceParent parent, CliNamespaceKeyedTreeNode namespaceInfo)
 {
     this.owningAssembly = owningAssembly;
     this.namespaceInfo  = namespaceInfo;
     this.parent         = parent;
 }
コード例 #6
0
 internal CliDelegateType(CliAssembly assembly, ICliMetadataTypeDefinitionTableRow metadataEntry)
     : base(assembly, metadataEntry)
 {
 }
コード例 #7
0
 protected CliGenericTypeBase(CliAssembly assembly, ICliMetadataTypeDefinitionTableRow metadataEntry)
     : base(assembly, metadataEntry)
 {
 }
コード例 #8
0
 /// <summary>
 /// Creates a new <see cref="CliGenericParentType{TIdentifier, TType}"/> with the
 /// <paramref name="owner"/> and <paramref name="metadataEntry"/> provided.
 /// </summary>
 /// <param name="owner">The <see cref="CliAssembly"/> which contains the
 /// <see cref="CliGenericParentType{TIdentifier, TType}"/>.</param>
 /// <param name="metadataEntry">The <see cref="ICliMetadataTypeDefinitionTableRow"/> from
 /// which the information within the <see cref="CliGenericParentType{TIdentifier, TType}"/>
 /// is derived.</param>
 internal CliGenericParentType(CliAssembly owner, ICliMetadataTypeDefinitionTableRow metadataEntry)
     : base(owner, metadataEntry)
 {
 }
コード例 #9
0
 public _AssemblyInformation(CliAssembly owner)
 {
     this.owner = owner;
 }
コード例 #10
0
 public CliInterfaceType(CliAssembly owner, ICliMetadataTypeDefinitionTableRow metadataEntry)
     : base(owner, metadataEntry)
 {
 }
コード例 #11
0
 internal CliClassType(CliAssembly assembly, ICliMetadataTypeDefinitionTableRow metadata)
     : base(assembly, metadata)
 {
 }
コード例 #12
0
 protected CliGenericInstantiableTypeBase(CliAssembly assembly, ICliMetadataTypeDefinitionTableRow metadata)
     : base(assembly, metadata)
 {
 }
コード例 #13
0
 internal CliTypeBase(CliAssembly assembly, ICliMetadataTypeDefinitionTableRow metadataEntry)
 {
     this.assembly      = assembly;
     this.metadataEntry = metadataEntry;
 }