2016-10-13 4 views
0

라이브러리를 생성하는 계약 (프로젝트 A)과 해당 라이브러리의 인터페이스를 구현하는 다른 프로젝트 (프로젝트 B)가 있습니다.다른 프로젝트의 코드 계약

프로젝트 A에서 프로젝트 B로 계약 파일을 복사하려고 시도했는데 계약이 문제없이 런타임에 실행됩니다. 하지만 프로젝트 B에서 프로젝트 A를 참조하려고 할 때 정적 분석기가 여전히 작동하지만 런타임 검사가 더 이상 작동하지 않습니다.

내가 잘못 했나요? 코드 계약이 어떻게 작동하는지 이해할 수없는 것이 있습니까? 중요

답변

0

:이 여기에서 논의 된 - CodeContracts issue

는 새로운 솔루션에서 유사한 프로젝트 구조를 복제. 모든 것이 아무런 문제없이 이루어졌습니다. 나는 여전히 생산 솔루션의 문제를 발견 할 수 없었다.

절망에서 벗어난 새로운 CompanyName.ContractsDebug 라이브러리를 만들었습니다. 일부 테스트 계약 구현은 해당 라이브러리를 사용할 때 런타임 검사를 시작했습니다. 그런 다음 어리석은 수정을 시도하고 이전 계약 프로젝트 (CompanyName.Contracts)의 네임 스페이스를 새 이름 (CompanyName.Shared.Contracts)으로 리팩터링했습니다. 그리고 그것은 어떻게 든 모든 것을 고쳤습니다. 아주 이상한 버그.

업데이트 저는 이걸 Shared.Contracts으로 옮기는 것이 성급하다고 말했습니다. 그것을 Shared.IContracts으로 옮겼습니다. Contracts 키워드와 어떤 거래가 있는지 모르겠습니다.