コード例 #1
0
        private bool ExceptionIsLessVisible(MemberWithAccess preconditionContainer, IClass exception)
        {
            Contract.Requires(preconditionContainer != null);
            Contract.Requires(exception != null);

            return !AccessVisibilityChecker.MemberWith(exception.GetAccessRights())
                .IsAccessibleFrom(preconditionContainer.GetCombinedAccessRights());
        }
コード例 #2
0
        private bool ExceptionIsLessVisible(MemberWithAccess preconditionContainer, IClass exception)
        {
            Contract.Requires(preconditionContainer != null);
            Contract.Requires(exception != null);

            return(!AccessVisibilityChecker.MemberWith(exception.GetAccessRights())
                   .IsAccessibleFrom(preconditionContainer.GetCombinedAccessRights()));
        }
コード例 #3
0
        public bool IsAccessibleFrom(MemberWithAccess contractHolder)
        {
            Contract.Requires(contractHolder != null);
            Contract.Assert(_referencedMember != null);

            // If type visibilities are the same, lets ignore them!
            if (_referencedMember.TypeAccessRights == contractHolder.TypeAccessRights)
            {
                return(MemberWith(_referencedMember.MemberAccessRights)
                       .IsAccessibleFrom(contractHolder.MemberAccessRights));
            }

            var referencedMemberCombinedVisibility = _referencedMember.GetCombinedAccessRights();
            var contractHolderCombinedVisibility   = contractHolder.GetCombinedAccessRights();

            return(MemberWith(referencedMemberCombinedVisibility).IsAccessibleFrom(contractHolderCombinedVisibility));
        }