xamarin android 绑定将 类 final int 字段更改为 c# 枚举

xamarin android bindings changing a classes final int field to a c# enum

我一直在为第三方 Android JAR 编写 Xamaring 绑定库,但对如何将 class 中的 int 字段转换为枚举感到困惑。

我已经使用 EnumFields.xml 为 int 字段创建了一个 C# 枚举,并且还通过使用 EnumMethods.xml 的方法成功地 return 但在一个地方 class 改为 returned,它公开了一个应该是我的枚举的 int 字段。

我试过:

<method jni-name="error" parameter="return" clr-enum-type=....

在 EnumMethods 中但无法使其工作,然后我尝试了

<attr path=".......[@name='Result']/field[@name='error']"
    name="managedType">

在 Metadata.xml 内,但也无法将其映射。我可以更改其 属性 名称但不能更改其 return 类型。

在 JavaDoc 中它表示如下:

public final int error

在我生成的 C# 中,我得到:

// Metadata.xml XPath field reference: path="/api/package[@name='cn.com.aratek.util']/class[@name='Result']/field[@name='error']"

我是不是漏掉了什么明显的东西?

一年后,在再次遇到同样的问题后,我最终遇到了自己的 post。 作为参考,我的错误是试图使用 managedType 作为名称。您只需使用 type.

例如 metadata.xml

<attr path=".......[@name='Result']/field[@name='error']" name="type">NewEnumName</attr>

我用来帮助解决这个问题的参考资料: