Xamarin에서 주 Forms 프로젝트에서 사용할 수있는 라이브러리를 만들려고합니다. 이 라이브러리는 Objective-C와 Java로 작성된 원시 코드를 각각 사용하므로 iOS와 Android 용 바인딩 프로젝트에서 만들어야합니다.일반 서식 프로젝트의 Xamarin 바인딩 라이브러리
이렇게하려면 공유 프로젝트 "Binding Project Interface"에 공통 인터페이스 IExample
을 만들고 두 인터페이스 모두에서이 인터페이스를 ExampleiOS
및 ExampleAndroid
으로 구현했습니다. 그런 다음 각 플랫폼의 App Project에서 구현을 인스턴스화하고이를 일반 앱 프로젝트에 전달합니다.
일반적인 응용 프로그램 프로젝트와 바인딩 프로젝트 모두 바인딩 프로젝트 인터페이스를 참조하기 때문에 문제가 발생합니다. 그 결과, 플랫폼 앱 프로젝트는 두 개의 분리 된 장소에서 IExample
을 상속 나는 오류 : 현재 바인딩 프로젝트의 코드는 일반적인 응용 프로그램 프로젝트에서 액세스 할 수 있도록 내가 프레임 워크를 수정하는 방법
The imported type 'IExample' is defined multiple times
?
공용 프로젝트가 인스턴스를 전달해야하는 인터페이스에 대해 알지 못하므로 참조 A를 제거 할 수 없습니다. 바인딩 프로젝트가 인터페이스를 구현할 수 없기 때문에 참조 B 또는 C를 제거 할 수 없습니다. 앱 프로젝트가 바인딩 프로젝트에서 구현을 인스턴스화해야하므로 참조 D 또는 E를 제거 할 수 없습니다. 앱 프로젝트가 인스턴스화 된 구현을 전달하기 위해 공통 코드에 액세스해야하기 때문에 참조 F 또는 G를 제거 할 수 없습니다.