[英]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.