将Java.Util.HashMap转换为System.Collections.IDictionary

时间:2014-06-01 21:21:28

标签: xamarin xamarin.android

在Xamarin中我有一个.jar我使用Java绑定库导入。其中一个回调函数有一个Java.Lang.Object参数,它在运行时为Java.Util.HashMapJava.Util.ArrayList提供了参数。我在跨平台接口后面抽象这个SDK,所以我需要将它转换为.NET类型。有什么像ArrayAdapter,除了反过来可以将Java类型转换为它们的.NET等价物?

例如,可以像这样使用名为RemoteCallback的Java类的绑定类:

public MyRemoteCallback : RemoteCallback
{
    public void OnComplete(Java.Lang.Object result)
    {
        // At runtime, result is a graph of nested Java.Util.ArrayList 
        // and Java.Util.HashMap instances. This value is used in an 
        // implementation of a cross-platform interface, so I need to 
        // convert these to their .NET equivalent IEnumerable and 
        // IDictionary instances.
    }
}

目前我已经有了一个有效但不太优雅的解决方案。为了向Java库提供参数的明确目的,Xamarin提供了相反方向的转换,看起来这也是一个自然映射,但我还没有找到它。

0 个答案:

没有答案