public override IPermission Intersect(IPermission target)
{
FileIOPermission fiop = Cast(target);
if (fiop == null)
{
return(null);
}
if (IsUnrestricted())
{
return(fiop.Copy());
}
if (fiop.IsUnrestricted())
{
return(Copy());
}
FileIOPermission result = new FileIOPermission(PermissionState.None);
result.AllFiles = m_AllFilesAccess & fiop.AllFiles;
result.AllLocalFiles = m_AllLocalFilesAccess & fiop.AllLocalFiles;
IntersectKeys(readList, fiop.readList, result.readList);
IntersectKeys(writeList, fiop.writeList, result.writeList);
IntersectKeys(appendList, fiop.appendList, result.appendList);
IntersectKeys(pathList, fiop.pathList, result.pathList);
return(result.IsEmpty() ? null : result);
}