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"); } }