Невозможно получить доступ к собственному коду (элементу) в формах Xamarin с помощью NETStandard 2.0 - PullRequest
0 голосов
/ 28 августа 2018

Мой частичный класс не нацелен на #if в проекте Xamarin Forms с NETStandard 2.0

Пример проблемы:

     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 голосов
/ 28 августа 2018

Директивы компилятора доступны только в общем коде, а Device.OnPlatform устарела. Решением для этого является использование Device.RuntimePlatform в операторе switch. Это сделало бы ваш код похожим на:

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;
}

Посмотрите на документы Microsoft для получения информации об использовании Device.RuntimePlatform

...