在Xamarin中我有一个.jar我使用Java绑定库导入。其中一个回调函数有一个Java.Lang.Object
参数,它在运行时为Java.Util.HashMap
和Java.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提供了相反方向的转换,看起来这也是一个自然映射,但我还没有找到它。