[英]Conditional Compilation in Xamarin using MvvmCross
我是xamarin和MvvmCross框架的新手。 我目前正在為Android,Windows Phone和iOS創建一個多平台應用程序。 我目前在找出應用運行在哪個平台上時遇到問題。
我想做的是在app.cs文件中包含一個if語句。 我想檢查這是否是iOS應用程序,然后執行操作,否則執行此操作。 但是我還沒有找到執行此操作的任何好方法,而且我什至不知道可以在此文件中完成此操作
到目前為止,這是我的代碼:
using Cirrious.CrossCore;
using Cirrious.CrossCore.IoC;
using Cirrious.MvvmCross.ViewModels;
using tax.Mobile.Core.Interfaces;
using tax.Mobile.Core.Logic;strong text
namespace tax.Mobile.Core
{
public partial class App : MvxApplication
{
public override void Initialize()
{
CreatableTypes()
.EndingWith("Service")
.AsInterfaces()
.RegisterAsLazySingleton();
#if (__iOS__)
RegisterAppStart<ViewModels.FirstViewModel>();
#else
RegisterAppStart<ViewModels.SearchViewModel>();
#endif
Mvx.RegisterType<IWebService, MockWebService>();
}
}
}
謝謝!
如果PCL庫在項目屬性中使用自己的符號編譯或由#define SYMBOL
語法定義,則將無法使用。
若要選擇開始屏幕,可以使用App構造函數和Setup.CreateApp方法
1)在PCL中使用平台選項創建枚舉
public enum OS
{
Droid, Touch, WinPhone, WinStore, Mac, Wpf
}
2)在您的App類構造函數中使用此枚舉值
public App (OS os)
{
_os = os;
}
public override void Initialize()
{
/*...*/
switch(_os)
{
case OS.Touch:
RegisterAppStart<ViewModels.FirstViewModel>(); break;
default:
RegisterAppStart<ViewModels.SearchViewModel>();
}
/*...*/
}
3)通過Setup.CreateApp()方法將當前操作系統傳遞給App
{
return new.Core.App(OS.Droid)
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.