/// <summary>
        ///     Generate a specific type of evidence for this assembly
        /// </summary>
        public EvidenceBase GenerateEvidence(Type evidenceType)
        {
            // Assembly evidence is a superset of the evidence that a PEFile can supply, so first see if the
            // requested evidence type can be generated by the assembly's PEFile
            EvidenceBase evidence = m_peFileFactory.GenerateEvidence(evidenceType);

            if (evidence != null)
            {
                return(evidence);
            }

            // If the PEFile didn't know about this type of evidence, see if it is an evidence type that the
            // Assembly knows how to generate
            if (evidenceType == typeof(GacInstalled))
            {
                return(GenerateGacEvidence());
            }
            else if (evidenceType == typeof(Hash))
            {
                return(GenerateHashEvidence());
            }
#pragma warning disable 618 // We need to generate PermissionRequestEvidence in compatibility mode
            else if (evidenceType == typeof(PermissionRequestEvidence))
            {
                return(GeneratePermissionRequestEvidence());
            }
#pragma warning restore 618
            else if (evidenceType == typeof(StrongName))
            {
                return(GenerateStrongNameEvidence());
            }

            return(null);
        }