/// <summary> /// Creates a security declaration from a declaration metadata row. /// </summary> /// <param name="parentModule">The module that contains the security declaration.</param> /// <param name="token">The token to initialize the declaration for.</param> /// <param name="row">The metadata table row to base the security declaration on.</param> public SerializedSecurityDeclaration(SerializedModuleDefinition parentModule, MetadataToken token, SecurityDeclarationRow row) : base(token) { _parentModule = parentModule; _row = row; Action = row.Action; }
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); } }
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); } }