Vazby projektů MSBuild – vlastnosti

Poznámka:

V .NET pro Android není technicky žádný rozdíl mezi aplikací a projekt vazby, takže tyto vlastnosti budou fungovat v obou. V praxi se důrazně doporučuje vytvářet samostatné projekty aplikací a vazeb. Vlastnosti sestavení, které se primárně používají v projektech aplikací, jsou dokumentované v referenční příručce k MSBuild vlastnostem.

Vlastnosti sestavení

Vlastnictví Výchozí Description
AndroidBoundInterfacesContainConstants true Logická vlastnost, která určuje, zda budou podporovány vazby konstant v rozhraních, nebo pokud se použije starší alternativní řešení pro vytvoření IMyInterfaceConsts třídy.

Dokumentace
AndroidBoundInterfacesContainStatic
AndDefaultInterfaceMethods
true Logická vlastnost, která určuje, zda budou podporovány výchozí a statické členy v rozhraních, nebo starší alternativní řešení vytvoření třídy na stejné úrovni obsahující statické členy, jako abstract class MyInterface je bude použito.

Dokumentace
AndroidBoundInterfacesContainTypes true Logická vlastnost, která určuje, jestli budou podporovány typy vnořené do rozhraní, nebo se použije starší alternativní řešení pro vytvoření nenořeného typu IMyInterfaceMyNestedClass .

Dokumentace
AndroidEnableObsoleteOverrideInheritance
Přidáno v .NET 8
true Logická vlastnost, která určuje, zda vázané metody, které přepisují @Deprecated metody Java jsou automaticky označeny jako @Deprecated.

Dokumentace
AndroidEnableRestrictToAttributes
Přidáno v .NET 8
obsolete Vlastnost ve stylu výčtu s platnými hodnotami obsolete a disable která určuje, zda je atribut .NET [Obsolete] přidán do vázaného rozhraní API, které je označeno @RestrictTo v knihovně Java.

Dokumentace
AndroidJavadocVerbosity intellisense Vlastnost ve stylu výčtu s platnými hodnotami intellisense a full určuje, jak "podrobné" mají být komentáře dokumentace XML v jazyce C# při importu dokumentace Javadoc v bindovacích projektech pomocí akce sestavení @(JavaSourceJar).

Dokumentace

Rozhraní Vázaná na Android Obsahují Konstanty

Logická vlastnost, která určuje, zda budou podporovány vazby konstant v rozhraních, nebo pokud se použije starší alternativní řešení pro vytvoření IMyInterfaceConsts třídy.

Výchozí hodnota je true.

To se doporučuje jenom v případě, že se pokoušíte zachovat kompatibilitu veřejného rozhraní API s knihovnou starších vazeb vytvořenou před vydáním C# 8.

Další podrobnosti

AndroidBoundInterfacesContainStaticAndDefaultInterfaceMethods

Logická vlastnost, která určuje, zda budou podporovány výchozí a statické členy v rozhraních, nebo zda se použije starší alternativní řešení, v němž se vytvoří pomocná třída obsahující statické členy, jako je abstract class MyInterface.

Výchozí hodnota je true.

To se doporučuje jenom v případě, že se pokoušíte zachovat kompatibilitu veřejného rozhraní API s knihovnou starších vazeb vytvořenou před vydáním C# 8.

Další podrobnosti

AndroidVázanáRozhraníObsahujíTypy

Logická vlastnost, která určuje, zda budou podporovány typy vnořené v rozhraních, nebo zda bude použito zastaralé alternativní řešení pro vytvoření nenosného typu, jako je IMyInterfaceMyNestedClass.

Výchozí hodnota je true.

To se doporučuje jenom v případě, že se pokoušíte zachovat kompatibilitu veřejného rozhraní API s knihovnou starších vazeb vytvořenou před vydáním C# 8.

Další podrobnosti

AndroidEnableRestrictToAttributes

Vlastnost ve stylu výčtu s platnými hodnotami obsolete a disable, která určuje, zda je atribut .NET [Obsolete] přidán do vázaného rozhraní API označeného @RestrictTo v knihovně Java.

Tato vlastnost je ve výchozím nastavení nastavená obsolete .

Pokud je tato možnost nastavená na obsolete, typy a členy, které jsou označené poznámkou androidx.annotation.RestrictTo Java nebo jsou v neexportovaných balíčcích Java, budou označeny atributem [Obsolete] ve vazbě jazyka C#.

Tento [Obsolete] atribut obsahuje popisnou zprávu s vysvětlením, že vlastník balíčku Java považuje rozhraní API za "interní" a varuje před jeho použitím.

Tento atribut má také vlastní kód XAOBS001 upozornění, aby se dal potlačit nezávisle na "normálním" zastaralém rozhraní API.

Když nastavíte hodnotu disable, rozhraní API se vygeneruje jako normální bez dalších atributů. (Toto chování je stejné jako u rozhraní .NET 8.)

Přidání [Obsolete] atributů místo automatického odebrání rozhraní API bylo provedeno za účelem zachování kompatibility rozhraní API s existujícími balíčky. Pokud místo toho chcete odebrat členy, které mají poznámku @RestrictTonebo jsou v neexportovaných balíčcích Java, můžete kromě této vlastnosti použít metadata , abyste zabránili vázaní těchto typů:

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

Podpora této vlastnosti byla přidána v .NET 8.

AndroidEnableObsoleteOverrideInheritance

Logická vlastnost, která určuje, zda vázané metody, které přepisují metody @Deprecated Java, jsou automaticky označovány jako @Deprecated.

Je velmi vzácné, že je nutné změnit tuto vlastnost.

Podpora této vlastnosti byla přidána v .NET 8.

AndroidJavadocVerbosity

Vlastnost ve stylu výčtu s platnými hodnotami intellisense a full určuje, jak "podrobné" mají být komentáře dokumentace XML jazyka C# při importu dokumentace Javadoc v rámci projektů vytvářejících vazby, když je použita akce sestavení @(JavaSourceJar).

Tato vlastnost je ve výchozím nastavení nastavená intellisense .