문제
나는 다음과 같이 인터페이스가 정의되어 있습니다.
public interface IDatabase{ void Get<TTypeToFetch> ();}
그리고 내가하려고 할 때 :Mockery mockery = new Mockery();
IDatabase db = mockery.NewMock<IDatabase>();
다음 오류가 발생합니다.
system.typeloadexception : system.typeloadexception : 신체의 서명 및 메소드 구현의 선언이 일치하지 않습니다.
뭐가 잘못 되었 니? (NMOCK2와 함께 Visual Studio 2008을 사용하고 있습니다) 모두에게 답을 줄 수 있습니다. 곧 끝내야합니다. 고마워요, 루이사
해결책
나는 이것이 Nmock, 아마도 버그에 문제가 될 수 있다고 생각합니다. 유형 IDatabase
일반적인 것이 아니므로 호출 할 때 Get<T>
, 다른 T
S는 런타임에 사용할 수 있습니다. 그러나 Nmock이 모의를 생성 할 때, 이것이 사실임을 이해하지 못하는 것처럼 보이지 않으며 Kablammo (각 메소드 서명)가 제공된 유형 매개 변수에 따라 다릅니다.
대신 이것을 시도하십시오.
public interface IDatabase<T> {
void Get<T>();
}
또한, 유형은 아니어야합니다 Get
~이다 T
, 아니다 void
?
다른 팁
나는 내 자신의 인터페이스와 동일한 예외를 가졌다. 인터페이스를 공개하도록 변경하면 모든 것이 정상적으로 실행됩니다.
제휴하지 않습니다 StackOverflow