C# Xamarin主要方法或等效方法

C# Xamarin主要方法或等效方法,c#,xamarin,xamarin.forms,C#,Xamarin,Xamarin.forms,我是Xamarin的新手,我正在寻找一个类似main()方法的入口点。此外,我还有一个数据存储(即模型)类,它不断地从web套接字接收数据,并且可以从整个应用程序中访问(即从多个ViewModels)。我可以把这些重要的中心类放在哪里?你能把这些放在一个静态类中吗 另外:是否有类似于负责处理任务和事件的主循环 我非常感谢您对Xamarin应用程序中所有“入口点”的一般/初级概述。例如,如果您在Visual Studio 2017中创建一个跨平台移动应用程序,您将获得一个脚手架。数据层位于“服务”

我是Xamarin的新手,我正在寻找一个类似
main()
方法的入口点。此外,我还有一个数据存储(即模型)类,它不断地从web套接字接收数据,并且可以从整个应用程序中访问(即从多个ViewModels)。我可以把这些重要的中心类放在哪里?你能把这些放在一个静态类中吗

另外:是否有类似于负责处理任务和事件的
主循环


我非常感谢您对Xamarin应用程序中所有“入口点”的一般/初级概述。

例如,如果您在Visual Studio 2017中创建一个跨平台移动应用程序,您将获得一个脚手架。数据层位于“服务”文件夹中

我将把“App.xAML”文件作为入口点。

   public partial class App : Application
{
    //TODO: Replace with *.azurewebsites.net url after deploying backend to Azure
    public static string AzureBackendUrl = "http://localhost:5000";
    public static bool UseMockDataStore = false;
    public static bool UseEntityFramework = true;

    public App()
    {
        InitializeComponent();

        if (UseMockDataStore)
            DependencyService.Register<MockDataStore>();
        else if (UseEntityFramework)
            DependencyService.Register<SqLiteDataStore>();
        else
            DependencyService.Register<AzureDataStore>();

        MainPage = new MainPage();
    }

    protected override void OnStart()
    {
        // Handle when your app starts
    }

    protected override void OnSleep()
    {
        // Handle when your app sleeps
    }

    protected override void OnResume()
    {
        // Handle when your app resumes
    }
}
公共部分类应用程序:应用程序
{
//TODO:将后端部署到Azure后替换为*.azurewebsites.net url
公共静态字符串AzureBackendUrl=”http://localhost:5000";
公共静态bool UseMockDataStore=false;
公共静态bool UseEntityFramework=true;
公共应用程序()
{
初始化组件();
如果(使用MockDataStore)
DependencyService.Register();
else if(UseEntityFramework)
DependencyService.Register();
其他的
DependencyService.Register();
主页=新主页();
}
受保护的覆盖void OnStart()
{
//在应用程序启动时处理
}
受保护的覆盖void OnSleep()
{
//在应用程序睡眠时处理
}
受保护的覆盖void OnResume()
{
//在应用程序恢复时处理
}
}

每个平台都有自己的
main()
类方法

  • Android
    MainActivity.OnCreate()
  • iOS
    AppDelegate.FinishedLaunching(UIApplication应用程序、NSDictionary选项)
  • UWP
    App.OnLaunched(LaunchActivatedEventArgs e)
在Xamarin.Forms应用程序上,所有这些平台都实例化
App
类并设置
MainPage


如果要为BL执行操作,应该使用
App.OnStart()
方法。

假设您谈论的是
Xamarin.Forms

我是Xamarin的新手,正在寻找像main()方法这样的入口点

  • 现在
    Xamarin.Forms
    的基本工作原理是,各自的本机类,即
    MainActivity
    (Android)、
    AppDelegate
    (iOS)和
    App
    (UWP)在
    .Net Standard
    PCL
    项目中调用
    App.Xaml
    类。 因此,这可以被视为一个入口点,就像控制台应用程序的
    main()
    方法一样
我有一个数据存储(即模型)类,它不断地从web套接字接收数据,并且可以从整个应用程序中访问(即从多个ViewModels)

  • 对于这一点,最好的处理方法是,我建议您也检查一下,以更好地了解它是如何工作的
我可以把这些重要的中心类放在哪里?你能把这些放在一个静态类中吗

  • 您可以将它们设置为静态,但我个人建议您只将冗余代码设置为静态。是的,您可以随意创建静态助手类
还有:是否有类似于负责处理任务和事件的主循环的东西

  • 你问题的这一部分我不清楚,请再详细说明一下

如有疑问,请随时回复。

在Android中,您可以覆盖默认的MainActivity,如下所示:


非常感谢,但是,BL?它的业务层让我注意到UWP命名空间(和项目)中的应用程序类与共享表单命名空间(和项目)中的应用程序类不同。在我的脑海里,我已经把这两者等同起来了,并且对于哪一个是首先创建的感到非常困惑。是的,我已经考虑过把东西放在
App.xaml
文件中。我发现它有点“隐藏”,tho。我读到了关于帮助的
部分课程
方面的内容。我可以利用它吗?“App.xaml”文件位于项目的根目录下,因此您可以很容易地找到它。“部分”是指完成UWP项目中已经存在的应用程序类。您甚至可以在一个单独的文件中创建自己的“公共部分类应用程序”,但这会使它变得不必要的复杂。我将首先尝试在“服务”文件夹中设置您的数据源。