internal unsafe static void ReflectedLinkDemandInvoke(MethodBase mb)
{
RuntimeDeclSecurityActions runtimeDeclSecurityActions;
RuntimeDeclSecurityActions runtimeDeclSecurityActions2;
if (!SecurityManager.GetLinkDemandSecurity(mb, &runtimeDeclSecurityActions, &runtimeDeclSecurityActions2))
{
return;
}
PermissionSet permissionSet = null;
if (runtimeDeclSecurityActions.cas.size > 0)
{
permissionSet = SecurityManager.Decode(runtimeDeclSecurityActions.cas.blob, runtimeDeclSecurityActions.cas.size);
}
if (runtimeDeclSecurityActions.noncas.size > 0)
{
PermissionSet permissionSet2 = SecurityManager.Decode(runtimeDeclSecurityActions.noncas.blob, runtimeDeclSecurityActions.noncas.size);
permissionSet = ((permissionSet != null) ? permissionSet.Union(permissionSet2) : permissionSet2);
}
if (runtimeDeclSecurityActions2.cas.size > 0)
{
PermissionSet permissionSet3 = SecurityManager.Decode(runtimeDeclSecurityActions2.cas.blob, runtimeDeclSecurityActions2.cas.size);
permissionSet = ((permissionSet != null) ? permissionSet.Union(permissionSet3) : permissionSet3);
}
if (runtimeDeclSecurityActions2.noncas.size > 0)
{
PermissionSet permissionSet4 = SecurityManager.Decode(runtimeDeclSecurityActions2.noncas.blob, runtimeDeclSecurityActions2.noncas.size);
permissionSet = ((permissionSet != null) ? permissionSet.Union(permissionSet4) : permissionSet4);
}
if (permissionSet != null)
{
permissionSet.Demand();
}
}