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>
我用来帮助解决这个问题的参考资料:
- https://gist.github.com/JonDouglas/dda6d8ace7d071b0e8cb - 很棒
包含大量示例的资源
- 更新后的 Microsoft 文档
https://docs.microsoft.com/en-us/xamarin/android/platform/binding-java-library/customizing-bindings/java-bindings-metadata
- 最后,简单地看看 git 中心上其他人的来源。这
特别是 GTK# 绑定
https://github.com/mono/gtk-sharp/blob/master/gtk/Gtk.metadata
我一直在为第三方 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>
我用来帮助解决这个问题的参考资料:
- https://gist.github.com/JonDouglas/dda6d8ace7d071b0e8cb - 很棒 包含大量示例的资源
- 更新后的 Microsoft 文档 https://docs.microsoft.com/en-us/xamarin/android/platform/binding-java-library/customizing-bindings/java-bindings-metadata
- 最后,简单地看看 git 中心上其他人的来源。这 特别是 GTK# 绑定 https://github.com/mono/gtk-sharp/blob/master/gtk/Gtk.metadata