Bind projektets MSBuild-egenskaper

Anmärkning

I .NET för Android finns det tekniskt sett ingen skillnad mellan ett program och ett bindningsprojekt, så dessa egenskaper fungerar i båda. I praktiken rekommenderar vi starkt att du skapar separata program- och bindningsprojekt. Byggegenskaper som främst används i programprojekt dokumenteras i referensguiden för MSBuild-egenskaper .

Skapa egenskaper

Fastighet Standardinställning Beskrivning
AndroidBoundInterfacesContainConstants true En boolesk egenskap som anger om bindningskonstanter i gränssnitt kommer att stödjas, eller om den äldre lösningen för att skapa en IMyInterfaceConsts klass kommer att användas.

Dokumentation
AndroidBoundInterfacesContainStatic
AndDefaultInterfaceMethods
true En boolesk egenskap som anger om standard- och statiska medlemmar i gränssnitt kommer att stödjas, eller om den äldre lösningen med att skapa en syskonklass som innehåller statiska medlemmar som abstract class MyInterface kommer att användas.

Dokumentation
AndroidBoundInterfacesContainTypes true En boolesk egenskap som anger om typer som är kapslade i gränssnitt kommer att stödjas, eller den äldre lösningen för att skapa en icke-kapslad typ som IMyInterfaceMyNestedClass kommer att användas.

Dokumentation
AndroidEnableObsoleteOverrideInheritance
Har lagts till i .NET 8
true En boolesk egenskap som anger om bundna metoder som åsidosätter @Deprecated Java-metoder automatiskt markeras som @Deprecated.

Dokumentation
AndroidEnableRestrictToAttributes
Har lagts till i .NET 8
obsolete En enum-liknande egenskap med giltiga värden obsolete och disable som specificerar om .NET-attributet [Obsolete] läggs till i ett API som är markerat med @RestrictTo i ett Java-bibliotek.

Dokumentation
AndroidJavadocVerbosity intellisense En egenskap i enumerationsstil med giltiga värden intellisense och full som anger hur "utförliga" C# XML-dokumentationskommentarer ska vara när Javadoc-dokumentation importeras inom bindningsprojekt med hjälp av byggåtgärden @(JavaSourceJar).

Dokumentation

AndroidBundnaGränssnittInnehållerKonstanter

En boolesk egenskap som anger om bindningskonstanter i gränssnitt kommer att stödjas, eller om den äldre lösningen för att skapa en IMyInterfaceConsts klass kommer att användas.

Standardvärdet är true.

Detta rekommenderas endast om du försöker upprätthålla offentlig API-kompatibilitet med ett äldre bindningsbibliotek som skapades innan C# 8 släpptes.

Mer information

AndroidAnslutnaGränssnittInnehållerStat ochStandardGränssnittsmetoder

En boolesk egenskap som anger om standard- och statiska medlemmar i gränssnitt kommer att stödjas, eller om den äldre lösningen för att skapa en syskonklass som innehåller statiska medlemmar som abstract class MyInterface kommer att användas.

Standardvärdet är true.

Detta rekommenderas endast om du försöker upprätthålla offentlig API-kompatibilitet med ett äldre bindningsbibliotek som skapades innan C# 8 släpptes.

Mer information

AndroidbundaGränssnittInnehållerTyper

En boolesk egenskap som anger om typer kapslade i gränssnitt kommer att stödjas, eller om den äldre lösningen för att skapa en icke-kapslad typ som IMyInterfaceMyNestedClass kommer att användas.

Standardvärdet är true.

Detta rekommenderas endast om du försöker upprätthålla offentlig API-kompatibilitet med ett äldre bindningsbibliotek som skapades innan C# 8 släpptes.

Mer information

AndroidAktiveraBegränsaTillAttribut

En egenskap av typen enum med giltiga värden obsolete och disable som bestämmer om .NET-attributet [Obsolete] ska läggas till i ett bundet API som är markerat med @RestrictTo i ett Java-bibliotek.

Den här egenskapen är inställd obsolete på som standard.

När värdet är inställt på obsoletemarkeras typer och medlemmar som har markerats med Java-anteckningen androidx.annotation.RestrictToeller som finns i icke-exporterade Java-paket med ett [Obsolete] attribut i C#-bindningen.

Det här [Obsolete] attributet har ett beskrivande meddelande som förklarar att Java-paketägaren anser att API:et är "internt" och varnar för dess användning.

Det här attributet har också en anpassad varningskod XAOBS001 så att den kan ignoreras oberoende av "normalt" föråldrat API.

När det är inställt på disablegenereras API:et som vanligt utan ytterligare attribut. (Det här är samma beteende som före .NET 8.)

Att lägga till [Obsolete] attribut i stället för att automatiskt ta bort API:et gjordes för att bevara API-kompatibiliteten med befintliga paket. Om du i stället vill ta bort medlemmar som har anteckningen @RestrictToeller som finns i icke-exporterade Java-paket kan du använda metadata utöver den här egenskapen för att förhindra att dessa typer binds:

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

Stöd för den här egenskapen har lagts till i .NET 8.

AndroidEnableObsoleteOverrideInheritance

En boolesk egenskap som anger om bundna metoder som åsidosätter @Deprecated Java-metoder automatiskt markeras som @Deprecated.

Det är mycket ovanligt att behöva ändra den här egenskapen.

Stöd för den här egenskapen har lagts till i .NET 8.

AndroidJavadocVerbosity

En uppräkningsegenskap med giltiga värden intellisense och full som anger hur "utförliga" C# XML-dokumentationskommentarer ska vara vid import av Javadoc-dokumentation i bindningsprojekt när @(JavaSourceJar) används som byggåtgärd.

Den här egenskapen är inställd intellisense på som standard.