【问题标题】:xamarin android bindings changing a classes final int field to a c# enumxamarin android 绑定将类 final int 字段更改为 c# 枚举
【发布时间】:2023-03-13 23:36:01
【问题描述】:

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

我已经使用 EnumFields.xml 为 int 字段创建了一个 C# 枚举,并且还成功地从使用 EnumMethods.xml 的方法中返回,但是在一个地方返回了一个类,它公开了一个应该是我的 int 字段枚举。

我试过了:

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

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

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

在 Metadata.xml 中,但也无法将其映射。我可以更改它的属性名称,但不能更改它的返回类型。

在 JavaDoc 中它说如下:

public final int 错误

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

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

我是否遗漏了一些明显的东西?

【问题讨论】:

  • 嗨@LeonLu-MSFT 我不确定你在我的问题中添加了什么?我实际上已经使用了链接和微软文档上的链接来到达我所在的位置。我只是看不到如何将 final int 类型的字段更改为枚举

标签: c# android xamarin.android java-binding


【解决方案1】:

一年后,我在再次遇到同样的问题后偶然发现了自己的帖子。 作为参考,我的错误是尝试使用 managedType 作为名称。您只需使用type

例如在 metadata.xml 中

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    • 2019-11-14
    相关资源
    最近更新 更多