in ILRepack/RepackImporter.cs [711:745]
public void CopySecurityDeclarations(Collection<SecurityDeclaration> input, Collection<SecurityDeclaration> output, IGenericParameterProvider context)
{
foreach (SecurityDeclaration sec in input)
{
SecurityDeclaration newSec = null;
if (PermissionsetHelper.IsXmlPermissionSet(sec))
{
newSec = PermissionsetHelper.Xml2PermissionSet(sec, _repackContext.TargetAssemblyMainModule);
}
if (newSec == null)
{
newSec = new SecurityDeclaration(sec.Action);
foreach (SecurityAttribute sa in sec.SecurityAttributes)
{
SecurityAttribute newSa = new SecurityAttribute(Import(sa.AttributeType, context));
if (sa.HasFields)
{
foreach (CustomAttributeNamedArgument cana in sa.Fields)
{
newSa.Fields.Add(Copy(cana, context));
}
}
if (sa.HasProperties)
{
foreach (CustomAttributeNamedArgument cana in sa.Properties)
{
newSa.Properties.Add(Copy(cana, context));
}
}
newSec.SecurityAttributes.Add(newSa);
}
}
output.Add(newSec);
}
}