public override IPermission Intersect(IPermission target)
        {
            try
            {
                if (null == target)
                {
                    return(null);
                }
                DistributedTransactionPermission passedPermission = (DistributedTransactionPermission)target;

                if (!passedPermission.IsUnrestricted())
                {
                    return(passedPermission);
                }
                return(this.Copy());
            }
            catch (InvalidCastException)
            {
                throw new ArgumentException(SR.GetString(SR.ArgumentWrongType), "target");
            }
        }