Xamarin.Android绑定项目中的多态

莫里斯·范·比瑟科姆

我正在尝试为专有的Android库生成Xamarin绑定(换句话说,不幸的是我无法在此处共享该库)。但是我遇到了多态性问题。这是情况。

该库公开了3个接口LocationMobilityProfile并且Trip都扩展了该接口Reading

该库还具有接口Measurement,其包含Reading getReading();方法应该总是返回3个中提及的一个接口(LocationMobilityProfileTrip)。

我生成了绑定,并编译了效果很好的绑定项目。下一步将在我的Xamarin项目中使用Xamarin.Android绑定,如下所示:

public void ProcessReading(IReading reading)
{
    if (reading == null)
        return null;

    switch (reading)
    {
        case ILocation location:
            // Process location
            break;
        case IMobilityProfile mobilityProfile:
            // Process mobility profile
            break;
        case ITrip trip:
            // Process trip
            break;
        default:
            throw new NotSupportedException($"Processing the type '{reading.GetType().FullName}' is not supported.");
    }
}

现在,default由于reading参数的类型为,我最终处于这种情况IReadingInvoker有人可以建议我如何解决这个问题吗?

Tuyen Vu

当您的库以这种方式返回Java实例时,Xamarin.Android绑定库无法将Java实例映射到其C#接口。

PlzAndroid.Runtime.Extensions.JavaCast<ILocation>(readingInstace)用于其他类型,依此类推。

可能try-catch是必需的。

干杯。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Xamarin项目中的混淆

Java绑定项目中的Xamarin.Android是否可以使用Java 8功能?

是否可以在Xamarin.Android或Xamarin.iOS项目中使用“ PackageReference”?

Android-在xamarin项目中集成GitHub库

Xamarin UiTest绑定android:id?

在Xamarin Android项目中使用EF Core创建迁移

在Xamarin Android项目中的android资产内添加文件夹会引发Build错误

Xamarin YandexMapKit Android绑定

Xamarin.Forms:在Android项目中无法访问CurrentPlatform

在Xamarin项目中定位.NET Framework 4.6.1

Xamarin iOS的绑定库在包含在项目中时会引发本机链接错误

在Xamarin项目中绑定Native C库

在Xamarin Android项目中引用.Net Standard项目时出错

Xamarin为StripeTerminal创建绑定项目

如何从Xamarin Forms项目调用Android和iOS项目中可用的方法?

程序类型已经存在:Xamarin.Android项目中的android.support.annotation.PluralsRes错误

Xamarin.Android项目中的Xamarin.Forms调用对话框引发异常

Xamarin Android绑定

在Xamarin核心项目中使用HttpClient

在Xamarin PCL项目中隐藏Android Action Bar

Xamarin Android项目

使用iOS和Android Xamarin项目中的共享项目时的程序集参考问题

在Xamarin中使用Android Studio项目中的Java代码

如何从Xamarin项目中删除com.google.android.maps

Xamarin.Forms 在 Android 项目中加载 pin 异步

错误 CS0115:在 Xamarin 绑定库项目中找不到合适的方法来覆盖

你如何处理 xamarin android 项目中的多个应用程序类

在 Xamarin 本机项目中使用 SkiSharp

Xamarin 表单,myDir.Mkdir(); 在 Android 项目中返回 false