C# Xamarin公共表单绑定库项目

C# Xamarin公共表单绑定库项目,c#,xamarin,dependencies,monodevelop,C#,Xamarin,Dependencies,Monodevelop,在Xamarin中,我试图创建一个可以从主窗体项目使用的库。这个库需要从iOS和Android的绑定项目中创建出来,因为它们都分别使用Objective-C和Java编写的本机代码 为此,我在共享项目“Binding project interface”中创建了一个公共接口IExample,并在两个绑定项目中实现了该接口,分别为ExampleiOS和examplearoid。然后,我实例化每个平台应用程序项目的实现,并将它们传递到公共应用程序项目中 这就是我遇到麻烦的地方,因为公共应用程序项目和

在Xamarin中,我试图创建一个可以从主窗体项目使用的库。这个库需要从iOS和Android的绑定项目中创建出来,因为它们都分别使用Objective-C和Java编写的本机代码

为此,我在共享项目“Binding project interface”中创建了一个公共接口
IExample
,并在两个绑定项目中实现了该接口,分别为
ExampleiOS
examplearoid
。然后,我实例化每个平台应用程序项目的实现,并将它们传递到公共应用程序项目中

这就是我遇到麻烦的地方,因为公共应用程序项目和绑定项目都引用了绑定项目接口。因此,平台应用程序项目从两个不同的位置继承
IExample
,我得到了错误:

导入的类型“IExample”被多次定义

如何修改框架,使当前绑定项目的代码可以从通用应用程序项目访问

我无法删除引用,因为这样公共项目就不知道需要向其传递实例的接口。我无法删除引用B或C,因为绑定项目无法实现接口。我无法删除引用D或E,因为应用程序项目需要实例化绑定项目中的实现。我无法删除引用F或G,因为应用程序项目需要访问公共代码才能将其传递给实例化的实现

从一个项目到另一个项目的箭头表示第一个项目是它所指向的项目的引用:


公共绑定项目应该是PCL项目,而不是共享项目。作为一个共享项目,文件只是复制到引用项目中,因此接口实际上被编译了两次