通过


绑定项目 MSBuild 属性

注意

在 .NET for Android 中,应用程序与绑定项目在技术上没有区别,因此这些属性将同时在两者中使用。 在实践中,强烈建议创建单独的应用程序和绑定项目。 MSBuild 属性参考指南中 记录了主要用于应用程序项目的生成属性

生成属性

属性 默认 说明
AndroidBoundInterfacesContainConstants true 一个布尔属性,指定是否支持接口上的绑定常量,或者是否将使用创建 IMyInterfaceConsts 类的旧解决方法。

文档
AndroidBoundInterfacesContainStatic
AndDefaultInterfaceMethods
true 一个布尔属性,用于指定是否支持接口上的默认成员和静态成员,或使用创建包含静态成员的同级类(如 abstract class MyInterface)的传统解决方法。

文档
AndroidBoundInterfacesContainTypes true 一个布尔属性,该属性指定是否支持嵌套在接口中的类型,或者使用类似 IMyInterfaceMyNestedClass 创建非嵌套类型的旧解决方法。

文档
AndroidEnableObsoleteOverrideInheritance
在 .NET 8 中添加
true 一个布尔属性,指定重写 Java 方法的绑定方法 @Deprecated 是否自动标记为 @Deprecated

文档
AndroidEnableRestrictToAttributes
在 .NET 8 中添加
obsolete 一个枚举样式的属性,其有效值为obsoletedisable,用于指定是否将 .NET[Obsolete] 属性添加到在 Java 库中标记为@RestrictTo的绑定 API 中。

文档
AndroidJavadocVerbosity intellisense 一个枚举样式的属性,其有效值为intellisensefull,指定在使用@(JavaSourceJar)生成操作导入绑定项目中的 Javadoc 文档时,“详细”C# XML 文档注释的方式。

文档

Android接口包含常量

一个布尔属性,指定是否支持接口上的绑定常量,或者是否将使用创建 IMyInterfaceConsts 类的旧解决方法。

默认值为 true

仅当尝试维护公共 API 与在 C# 8 发布之前创建的旧绑定库的兼容性时,才建议这样做。

更多详细信息

AndroidBoundInterfacesContainStaticAndDefaultInterfaceMethods

一个布尔属性,用于指定是否支持接口上的默认成员和静态成员,或者如果不支持,则使用创建一个包含静态成员的同级类作为替代方案(例如abstract class MyInterface)。

默认值为 true

仅当尝试维护公共 API 与在 C# 8 发布之前创建的旧绑定库的兼容性时,才建议这样做。

更多详细信息

Android绑定接口包含类型

一个布尔属性,该属性指定是否支持在接口中嵌套的类型,或者是否使用创建非嵌套类型(如IMyInterfaceMyNestedClass)的传统变通方法。

默认值为 true

仅当尝试维护公共 API 与在 C# 8 发布之前创建的旧绑定库的兼容性时,才建议这样做。

更多详细信息

AndroidEnableRestrictToAttributes

一个枚举样式属性,其有效值为obsoletedisable,用于控制是否将 .NET [Obsolete] 属性添加到在 Java 库中标记为@RestrictTo的绑定 API。

此属性默认设置为 obsolete <

设置为obsolete时,使用 Java 注释标记的类型和成员,或处于非导出的 Java 包中的类型和成员,将在 C# 绑定中使用属性[Obsolete]进行标记。

此属性 [Obsolete] 具有描述性消息,说明 Java 包所有者认为 API 为“内部”,并警告其使用。

此属性还具有自定义警告代码 XAOBS001 ,因此可以独立于“普通”过时 API 将其取消。

设置为 disable 时,API 将正常生成,没有其他属性。 (这与 .NET 8 之前的行为相同。

添加 [Obsolete] 属性而不是自动删除 API 是为了保持与现有包的 API 兼容性。 如果希望 删除 具有 @RestrictTo 批注 处于非导出 Java 包中的成员,除了此属性之外,还可以使用 元数据 来防止这些类型被绑定:

<remove-node path="//*[@annotated-visibility]" />

.NET 8 中添加了对此属性的支持。

AndroidEnableObsoleteOverrideInheritance

一个布尔属性,指定绑定方法是否重写 Java 方法 @Deprecated ,并自动标记为 @Deprecated

很少需要更改此属性。

.NET 8 中添加了对此属性的支持。

AndroidJavadocVerbosity

具有有效值intellisensefull的枚举样式属性,用于在绑定项目中使用@(JavaSourceJar)生成操作导入 Javadoc 文档时,指定C# XML 文档注释应如何“详细”。

此属性默认设置为 intellisense <