【发布时间】:2017-03-27 07:08:23
【问题描述】:
在 Xamarin 中,我正在尝试创建一个可以从主 Forms 项目中使用的库。这个库需要从 iOS 和 Android 的绑定项目中创建出来,因为它们都使用了分别用 Objective-C 和 Java 编写的本机代码。
为此,我在共享项目“Binding Project Interface”中创建了一个公共接口IExample,并在两个绑定项目中实现了这个接口ExampleiOS和ExampleAndroid。然后我从每个平台的应用程序项目中实例化实现并将它们传递到通用应用程序项目中。
这是我遇到麻烦的地方,因为 Common App Project 和 Binding Projects 都引用了 Binding Project 接口。结果,平台应用程序项目从两个不同的地方继承IExample,我得到了错误:
The imported type 'IExample' is defined multiple times
如何修改框架,以便可以从 Common App Project 访问当前绑定项目的代码?
我无法删除引用 A,因为公共项目不知道需要传递其实例的接口。我无法删除引用 B 或 C,因为绑定项目无法实现该接口。我无法删除引用 D 或 E,因为应用程序项目需要实例化绑定项目中的实现。我无法删除引用 F 或 G,因为应用项目需要访问公共代码才能将实例化实现传递给它。
从一个项目到另一个项目的箭头表示第一个项目是它所指向的项目的引用:
【问题讨论】:
标签: c# xamarin dependencies monodevelop