public override IPermission Intersect(IPermission target)
{
RegistryPermission rp = Cast(target);
if (rp == null)
{
return(null);
}
if (IsUnrestricted())
{
return(rp.Copy());
}
if (rp.IsUnrestricted())
{
return(Copy());
}
RegistryPermission result = new RegistryPermission(PermissionState.None);
IntersectKeys(createList, rp.createList, result.createList);
IntersectKeys(readList, rp.readList, result.readList);
IntersectKeys(writeList, rp.writeList, result.writeList);
return(result.IsEmpty() ? null : result);
}