2013-09-27 2 views
0

내 코드에 Contract.Assert 문이 있습니다. 디버그 모드에서 어설 션을 실패한 어설 션에 실패했습니다.런타임 검사가 꺼져 있어도 Contract.Assert가 어설 션 대화를 표시하는 이유는 무엇입니까?

나는 이것에 대해 이해하지 못하는 두 가지가 있습니다

  1. 이 계약은 Rewiter에 의해 제어되지 않는가? 그래서 아무런 계약도 시행되지 않을 것이라는 사실이 확인되지 않았다면 생각했습니다. 그렇지 않은 경우, 런타임 검사 확인란에 의해 제어되는 대상은 무엇입니까? 뭐라구?

  2. 어설 션 대화 상자가 표시되는 이유는 무엇입니까? 그들은 Silverlight처럼 쓸모없는 것처럼 보입니다. IE의 대화 상자를 통해 얻을 수있는 주장은 실패했습니다. 나는 예외를 선호 할 것이다.

그렉

답변

0

DEBUG에서도 Contract.Assert 메서드가 활성화되어 있기 때문에 오류가 발생합니다. 릴리스에서는 볼 수 없습니다.

대화 상자가 아닌 다른 것을 원하면 rewriter를 활성화하거나 ContractFailed 이벤트 처리기로 핸들러를 등록해야합니다.

0

- 1 계약, 그는 키우면 필요가 없습니다 경우 비록 이유는 이용 계약을 계약 수행해야합니까? 계약서에 null 라벨 값을 사용할 수 있습니다. 2 - Asserting은 개발자가 무언가 착용한다는 것을 보여줍니다. 이것은 개발 환경에서 주로 사용됩니다. IL에서이 유효성 검사를 제외하기 위해 제작시 빌드를 기억해야합니다.