私の知る限り、列挙に値を追加することはできません。型は既にライブラリにコンパイルされています。(基になる型の値を列挙値にキャストすることで、それらを他の値に設定できますが、属性を使用した場合には適用できないと思います)
ディレクティブで更新する必要がある使用場所がたくさんあるため、目的のMethodImplOption
値を中央からアクセス可能な定数に移動し、すべてが次を参照するようにすることをお勧めします。
public class MethodImplSetting
{
public const MethodImplOptions DEFAULT_METHOD_IMPL = MethodImplOptions.AggressiveInlining;
}
[MethodImpl(DEFAULT_METHOD_IMPL)]
public void MyMethod()
{
}
次に、コンパイラディレクティブを適用して、コンパイル時に特別な Android 値に簡単に切り替えることができます。
public class MethodImplSetting
{
public const MethodImplOptions DEFAULT_METHOD_IMPL =
#if __ANDROID__
MethodImplOptions.NoInlining; //or whatever value you want
#else
MethodImplOptions.AggressiveInlining;
#endif
}
追加のプラットフォームをサポートしたり、テストのためにさまざまなメソッド実装オプションを切り替えたりしたい場合は、簡単に実行できます。
適切な Xamarin Android ディレクティブは、プラットフォーム ダイバージェンス/抽象化/ダイバージェント実装のセクション 3.1.2__ANDROID__
のドキュメントにあると思いますが、再確認することをお勧めします。