Mono.Cecil.Rocks.SecurityDeclarationRocks.CreateSecurityAttribute C# (CSharp) Method

CreateSecurityAttribute() static private method

static private CreateSecurityAttribute ( Type attribute_type, SecurityDeclaration declaration ) : SecurityAttribute
attribute_type System.Type
declaration SecurityDeclaration
return System.Security.Permissions.SecurityAttribute
        static SSP.SecurityAttribute CreateSecurityAttribute(Type attribute_type, SecurityDeclaration declaration)
        {
            SSP.SecurityAttribute security_attribute;
            try {
                security_attribute = (SSP.SecurityAttribute) Activator.CreateInstance (
                    attribute_type, new object [] { (SSP.SecurityAction) declaration.Action });
            } catch (MissingMethodException) {
                security_attribute = (SSP.SecurityAttribute) Activator.CreateInstance (attribute_type, new object [0]);
            }

            return security_attribute;
        }

Usage Example

        private static IPermission CreatePermission(SecurityDeclaration declaration, Mono.Cecil.SecurityAttribute attribute)
        {
            Type type = Type.GetType(attribute.AttributeType.FullName);

            if (type == null)
            {
                throw new ArgumentException("attribute");
            }
            System.Security.Permissions.SecurityAttribute securityAttribute = SecurityDeclarationRocks.CreateSecurityAttribute(type, declaration);
            if (securityAttribute == null)
            {
                throw new InvalidOperationException();
            }
            SecurityDeclarationRocks.CompleteSecurityAttribute(securityAttribute, attribute);
            return(securityAttribute.CreatePermission());
        }