gpt4 book ai didi

mvvm - Xamarin 表单 : IOC in FreshMvvm

转载 作者:行者123 更新时间:2023-12-01 08:51:49 26 4
gpt4 key购买 nike

我正在为我的 Xamarin 表单项目使用 Freshmvvm。我正在使用相机并想使用特定于平台的功能。所以,我想知道如何使用 IOC 控件来使用特定于平台的功能。

Freshmvvm.FreshIOC.Container.Register<ICamera,Camera>();

如果我从 App 类调用此代码,我是否需要在 iOS 和 Android 项目中都有相机类,如果是,那么如何让应用类知道我们想要实现一个特定平台的相机类?或者有没有更好的方法来使用 IOC 控制并将接口(interface)注入(inject)到页面模型( View 模型)的构造函数中?

最佳答案

我认为你所追求的是 Dependency Service .这使您能够访问 native 功能。

这样你必须在你的共享代码中创建一个接口(interface),例如 ICamera

public interface ICamera
{
void TakePicture();
}

现在您可以在平台特定项目中实现此接口(interface)。

例如在 iOS 上,你可以这样实现它:

公共(public)类 CameraImplementation : ICamera{ 公共(public)无效 TakePicture() { //这里是 iOS 代码 }}

现在的关键是如何注册。您可以通过在平台特定实现的命名空间之上添加类似这样的标签来实现此目的,如下所示:

[assembly: Xamarin.Forms.Dependency (typeof (CameraImplementation))]
namespace yourapp
{
// CameraImplementation class here
}

Android 也是如此。如果您保持命名相同,您甚至可以复制并粘贴此标签。

关于mvvm - Xamarin 表单 : IOC in FreshMvvm,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39498580/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com