NETStandard 2.0无法访问Xamarin表单中的本机代码(元素)

时间:2018-08-28 14:13:29

标签: xamarin xamarin.forms .net-standard-2.0

我的局部类没有针对使用NETStandard 2.0的Xamarin Forms项目中的#if

问题的一个示例是:

     public partial class App : Application
       {
       #region StaticString
        #if __IOS__
        public static String A
        #endif
        #if __ANDROID__
        public static String A
        #endif
        #if WINDOWS_UWP
        public static String A;         
        #endif
       #endregion

     public App ()
           {
            InitializeComponent();
            InitializeApplication();

           #region Teste
            #if __IOS__
            A="ios";
            #endif
            #if __ANDROID__
            A="droid";
            #endif
            #if WINDOWS_UWP
            A="UWP;         
            #endif
          #endregion
          }

        }

我需要访问并为我的视图模型发送特定的代码,但是它对于另一个类(如字符串A)是无法看到的。

我在“访问代码中的本机视图”中看到了一个示例/方式。

仅在共享代码中有效吗?

致谢

1 个答案:

答案 0 :(得分:2)

仅在共享代码中提供了编译器指令,并且不建议使用[ 0 1 1 0; 1 0 1 1; 0 1 0 1; 1 1 1 0; ] 。解决方案是在switch语句中使用Device.OnPlatform。这将使您的代码看起来像:

Device.RuntimePlatform

看看Microsoft docs,了解有关使用public static string A; switch (Device.RuntimePlatform) { case Device.iOS: A = "ios"; break; case Device.Android: A = "droid"; break; case Device.UWP: A = "UWP"; break; default: A = "unknown"; break; } 的信息