次の方法で共有


プロジェクトの 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 Java ライブラリのobsoleteでマークされているバインドされた API に .NET disable 属性を追加するかどうかを指定する、[Obsolete]@RestrictToの有効な値を持つ列挙スタイルのプロパティ。

ドキュメント
AndroidJavadocVerbosity intellisense intellisense および full という有効な値を持つ列挙型スタイルのプロパティで、@(JavaSourceJar) ビルド アクションを使用し、バインド プロジェクト内で Javadoc ドキュメントをインポートする際に「C# XML ドキュメンテーション コメント」がどの程度詳細に出力されるべきかを指定します。

ドキュメント

Androidに制約されたインターフェイスは定数を含む

インターフェイスのバインド定数がサポートされるかどうか、または IMyInterfaceConsts クラスを作成する従来の回避策を使用するかどうかを指定するブール型プロパティ。

既定値は true です。

これは、C# 8 がリリースされる前に作成されたレガシ バインディング ライブラリとのパブリック API の互換性を維持しようとする場合にのみ推奨されます。

[詳細]

Androidバウンドインターフェースには静的およびデフォルトのインターフェースメソッドが含まれています

インターフェイスの既定のメンバーと静的メンバーがサポートされるかどうか、または abstract class MyInterface などの静的メンバーを含む兄弟クラスを作成する従来の回避策を使用するかどうかを指定するブール型プロパティ。

既定値は true です。

これは、C# 8 がリリースされる前に作成されたレガシ バインディング ライブラリとのパブリック API の互換性を維持しようとする場合にのみ推奨されます。

[詳細]

Androidバウンドインターフェースタイプコンテイン

インターフェイスで入れ子になった型がサポートされるかどうか、または IMyInterfaceMyNestedClass のような入れ子になっていない型を作成する従来の回避策を使用するかどうかを指定するブール型プロパティ。

既定値は true です。

これは、C# 8 がリリースされる前に作成されたレガシ バインディング ライブラリとのパブリック API の互換性を維持しようとする場合にのみ推奨されます。

[詳細]

AndroidEnableRestrictToAttributes

Java ライブラリでobsoleteでマークされているバインドされた API に .NET disable 属性を追加するかどうかを制御する[Obsolete]@RestrictToの有効な値を持つ列挙スタイルのプロパティ。

このプロパティは既定で obsolete に設定されています。

obsoleteに設定すると、Java 注釈androidx.annotation.RestrictToor でマークされている型とメンバーがエクスポートされていない Java パッケージ内にある場合は、C# バインドで[Obsolete]属性でマークされます。

この [Obsolete] 属性には、Java パッケージ所有者が API を "内部" と見なし、その使用に対して警告することを説明する説明メッセージが含まれています。

この属性には、"通常の" 古い API とは別に抑制できるように、カスタム警告コード XAOBS001 もあります。

disableに設定すると、API は通常どおりに生成され、追加の属性はありません。 (これは、.NET 8 より前と同じ動作です)。

API を自動的に削除するのではなく、 [Obsolete] 属性を追加することで、既存のパッケージとの API の互換性を維持しました。 代わりに、注釈@RestrictToを持つメンバーまたはエクスポートされていない Java パッケージにあるメンバーを削除したい場合は、このプロパティに加えてmetadataを使用して、これらの型がバインドされないようにすることができます。

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

.NET 8 では、このプロパティのサポートが追加されました。

AndroidEnableObsoleteOverrideInheritance

java メソッドをオーバーライドするバインドされたメソッドが自動的に@Deprecatedとしてマークされるかどうかを指定するブール型プロパティ@Deprecated

このプロパティを変更する必要は非常にまれです。

.NET 8 では、このプロパティのサポートが追加されました。

AndroidJavadocVerbosity

intellisense および full という有効な値を持つ列挙型スタイルのプロパティで、@(JavaSourceJar) ビルド アクションを使用し、バインド プロジェクト内で Javadoc ドキュメントをインポートする際に「C# XML ドキュメンテーション コメント」がどの程度詳細に出力されるべきかを指定します。

このプロパティは既定で intellisense に設定されています。