2017-03-26 6 views
0

Xamarin에서 주 Forms 프로젝트에서 사용할 수있는 라이브러리를 만들려고합니다. 이 라이브러리는 Objective-C와 Java로 작성된 원시 코드를 각각 사용하므로 iOS와 Android 용 바인딩 프로젝트에서 만들어야합니다.일반 서식 프로젝트의 Xamarin 바인딩 라이브러리

이렇게하려면 공유 프로젝트 "Binding Project Interface"에 공통 인터페이스 IExample을 만들고 두 인터페이스 모두에서이 인터페이스를 ExampleiOSExampleAndroid으로 구현했습니다. 그런 다음 각 플랫폼의 App Project에서 구현을 인스턴스화하고이를 일반 앱 프로젝트에 전달합니다.

일반적인 응용 프로그램 프로젝트와 바인딩 프로젝트 모두 바인딩 프로젝트 인터페이스를 참조하기 때문에 문제가 발생합니다. 그 결과, 플랫폼 앱 프로젝트는 두 개의 분리 된 장소에서 IExample을 상속 나는 오류 : 현재 바인딩 프로젝트의 코드는 일반적인 응용 프로그램 프로젝트에서 액세스 할 수 있도록 내가 프레임 워크를 수정하는 방법

The imported type 'IExample' is defined multiple times

?

공용 프로젝트가 인스턴스를 전달해야하는 인터페이스에 대해 알지 못하므로 참조 A를 제거 할 수 없습니다. 바인딩 프로젝트가 인터페이스를 구현할 수 없기 때문에 참조 B 또는 C를 제거 할 수 없습니다. 앱 프로젝트가 바인딩 프로젝트에서 구현을 인스턴스화해야하므로 참조 D 또는 E를 제거 할 수 없습니다. 앱 프로젝트가 인스턴스화 된 구현을 전달하기 위해 공통 코드에 액세스해야하기 때문에 참조 F 또는 G를 제거 할 수 없습니다.

enter image description here

답변

0

프로젝트는 PCL 프로젝트 했어야 바인딩 공통이 아닌 공유 프로젝트 :

다른 하나 개의 프로젝트에서 화살표는 첫 번째 프로젝트는 그것이 가리키는있어 하나의 기준을 나타냅니다 . 공유 프로젝트로서, 파일은 단순히 참조 프로젝트에 복사되었고 인터페이스는 실제로 실제로 두 번 컴파일되었습니다.