- 在 PCL 中定義這個介面,這個介面僅有定義一個方法,回傳現在是否在除錯模式下。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace XFDoggy.Infrastructure
{
public interface IDebugMode
{
bool IsDebugMode();
}
}
- 在 Android 專案中,實作這個介面
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Android.App;
using Android.Content;
using Android.OS;
using Android.Runtime;
using Android.Views;
using Android.Widget;
using XFDoggy.Infrastructure;
using XFDoggy.Droid.Infrastructure;
[assembly: Xamarin.Forms.Dependency(typeof(DebugMode))]
namespace XFDoggy.Droid.Infrastructure
{
public class DebugMode : IDebugMode
{
public bool IsDebugMode()
{
#if DEBUG
return true;
#else
return false;
#endif
}
}
}
-
-
public LoginPageViewModel(INavigationService navigationService, IPageDialogService dialogService,
IDebugMode debugMode)
{
_navigationService = navigationService;
_debugMode = debugMode;
_dialogService = dialogService;
if (_debugMode.IsDebugMode() == true)
{
Account = "XXX";
Password = "???";
}
}
條件編譯式符號
,要了解決這個問題,可以定義一個介面,並且在每個平台實作這個介面,最後,透過 Prism 的 Unity 的建構式注入方式,取得這個介面實作物件