注意
在 .NET for Android 中,应用程序与绑定项目在技术上没有区别,因此这些属性将同时在两者中使用。 在实践中,强烈建议创建单独的应用程序和绑定项目。 MSBuild 属性参考指南中 记录了主要用于应用程序项目的生成属性 。
生成属性
| 属性 | 默认 | 说明 |
|---|---|---|
AndroidBoundInterfacesContainConstants |
true |
一个布尔属性,指定是否支持接口上的绑定常量,或者是否将使用创建 IMyInterfaceConsts 类的旧解决方法。文档 |
AndroidBoundInterfacesContainStaticAndDefaultInterfaceMethods |
true |
一个布尔属性,用于指定是否支持接口上的默认成员和静态成员,或使用创建包含静态成员的同级类(如 abstract class MyInterface)的传统解决方法。文档 |
AndroidBoundInterfacesContainTypes |
true |
一个布尔属性,该属性指定是否支持嵌套在接口中的类型,或者使用类似 IMyInterfaceMyNestedClass 创建非嵌套类型的旧解决方法。文档 |
AndroidEnableObsoleteOverrideInheritance在 .NET 8 中添加 |
true |
一个布尔属性,指定重写 Java 方法的绑定方法 @Deprecated 是否自动标记为 @Deprecated。文档 |
AndroidEnableRestrictToAttributes在 .NET 8 中添加 |
obsolete |
一个枚举样式的属性,其有效值为obsolete和disable,用于指定是否将 .NET[Obsolete] 属性添加到在 Java 库中标记为@RestrictTo的绑定 API 中。文档 |
AndroidJavadocVerbosity |
intellisense |
一个枚举样式的属性,其有效值为intellisense和full,指定在使用@(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
一个枚举样式属性,其有效值为obsolete和disable,用于控制是否将 .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
具有有效值intellisense和full的枚举样式属性,用于在绑定项目中使用@(JavaSourceJar)生成操作导入 Javadoc 文档时,指定C# XML 文档注释应如何“详细”。
此属性默认设置为 intellisense <
-
intellisense:仅发出 XML 注释:<exception/>、<param/>、<returns/>、<summary/>。 -
full:生成列出的intellisense元素,以及<remarks/>、<seealso/>,以及任何其他支持的元素。