AFAIK,您不能向枚举添加值;该类型已编译到库中。(您可以通过将基础类型值转换为枚举值来将它们设置为其他值,但我认为这不适用于您使用该属性的情况)
由于您有很多使用它的地方必须使用指令进行更新,因此我建议将所需的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 指令__ANDROID__
来自他们在Platform Divergence/Abstraction/Divergent Implementation 的文档,第 3.1.2 节,但您可能需要仔细检查。