2012-04-16 2 views
2

C# 클래스 libary - targetting .NET2 프레임 워크.C#에서 공개 인터페이스 구현 관련 문제

작은 클래스에서 공용 인터페이스 (두 번째 참조 된 어셈블리에서 노출됨)를 구현하려고합니다. 인터페이스는 3 가지 방법이 있습니다 하나는 괜찮지 만, 어떤 이유로 나는 각각에 대해 불평 컴파일러없이 다른 두를 구현하지 수 :

  • 내 수업 "구현하지 않습니다 InterFaceName.MethodName"
  • "명시 적 인터페이스 선언의 InterFaceName.MethodName이 인터페이스의 구성원이 아닙니다".

컴파일하는 한 가지 방법과 다른 두 가지 방법의 유일한 차이점은 문제 메서드마다 Office Interop (Word) 형식의 매개 변수가 있다는 것입니다. 다른 매개 변수는 bool이거나 다른 공용 인터페이스의 멤버입니다.

도움이된다면 여기에 클래스 정의를 추가 할 수 있지만 다른 어셈블리 ("상용 제품")의 "소유자"가 아니기 때문에 나는 약간의 구절을 사용해야 할 것입니다. 그들은 나를 그것에 대해 "노출"한다고 느낄 것입니다 ...

그것은 내가 알고있는 막연한 것이지만, 누군가가 이런 종류의 오류에 빠지기를 기대하고 있습니다.

모든 포인터 주셔서 감사합니다.

+0

구현하려는 인터페이스의 정의를 게시 할 수 있습니까? – ChrisF

+0

실제 코드가 민감한 경우 문제의 최소 재현을 작성하여 게시하십시오. –

+0

인터페이스를 문제없이 노출 할 수 있다고 생각합니다. 코드를 보지 않고도 솔루션에 대해 생각하는 것이 훨씬 더 어렵습니다. – rcdmk

답변

3

참조 된 어셈블리가 다른 버전의 Office Interop 어셈블리에 대해 빌드 된 경우이 문제가 자주 발생할 수 있습니다.

결과적으로 "MethodName"에 대해 선언 된 매개 변수가 참조 된 어셈블리의 인터페이스와 일치하는 것처럼 보일 수 있지만 어셈블리 버전이 다르므로 메서드 선언이 참조 된 어셈블리의 해독과 실제로 일치하지 않습니다.

정확히 동일한 버전의 interop 어셈블리를 사용하고 있는지 확인하십시오.

+0

그게 다야! 제안에 감사드립니다. Pete는 이제 문제없이 컴파일합니다. –