示例#1
0
        internal IList <SecurityDeclaration> GetSecurityDeclarationCollection(IHasSecurityDeclaration owner)
        {
            EnsureSecurityDeclarationsInitialized();
            var result = new OwnedCollection <IHasSecurityDeclaration, SecurityDeclaration>(owner);

            foreach (uint rid in _securityDeclarations.GetValues(owner.MetadataToken))
            {
                var attribute = (SecurityDeclaration)LookupMember(new MetadataToken(TableIndex.DeclSecurity, rid));
                result.Add(attribute);
            }

            return(result);
        }
示例#2
0
        private void AddSecurityDeclarations(MetadataToken ownerToken, IHasSecurityDeclaration provider)
        {
            var table   = Metadata.TablesStream.GetSortedTable <SecurityDeclaration, SecurityDeclarationRow>(TableIndex.DeclSecurity);
            var encoder = Metadata.TablesStream.GetIndexEncoder(CodedIndex.HasDeclSecurity);

            foreach (var declaration in provider.SecurityDeclarations)
            {
                var row = new SecurityDeclarationRow(
                    declaration.Action,
                    encoder.EncodeToken(ownerToken),
                    Metadata.BlobStream.GetBlobIndex(this, declaration.PermissionSet, DiagnosticBag));
                table.Add(declaration, row);
            }
        }
示例#3
0
        private void AddSecurityDeclarations(MetadataToken ownerToken, IHasSecurityDeclaration provider)
        {
            var table   = Metadata.TablesStream.GetSortedTable <SecurityDeclaration, SecurityDeclarationRow>(TableIndex.DeclSecurity);
            var encoder = Metadata.TablesStream.GetIndexEncoder(CodedIndex.HasDeclSecurity);

            for (int i = 0; i < provider.SecurityDeclarations.Count; i++)
            {
                var declaration = provider.SecurityDeclarations[i];
                var row         = new SecurityDeclarationRow(
                    declaration.Action,
                    encoder.EncodeToken(ownerToken),
                    Metadata.BlobStream.GetBlobIndex(this, declaration.PermissionSet, ErrorListener));
                table.Add(declaration, row);
            }
        }