- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为我的 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/
我有一个Xamarin.Forms应用程序,并且正在使用FreshMvvm框架。 如果我从FirstPageModel的ViewIsAppearing方法执行此操作: CoreMethods.Push
当用户通过使用freshMvvm方法FreshNavigationContainer在方法FreshMasterDetailNavigationContainer中登录时,我试图将Successful
我正在努力隐藏我的 TabbedNavigation 页面的标题。 public class NavigationContainerNames { public const strin
关于 IOC,我阅读了下面的定义和注册 interface ,我真的无法理解 We don’t need to include our own IOC container, FreshMvvm com
在 FreshMVVM 中实现主从页面的正确方法是什么: 检查了不同的地方,但找不到合适的实现方式,这是我第一次使用 MVVM 作为一个整体来处理 xamarin 表单应用程序。 GitHub 上是否
我正在为我的 Xamarin 表单项目使用 Freshmvvm。我正在使用相机并想使用特定于平台的功能。所以,我想知道如何使用 IOC 控件来使用特定于平台的功能。 Freshmvvm.FreshIO
我使用带有freshmvvm 框架的xamarin 表单。 我想知道如何跳过使用 xaml,而只是从 c# 中的代码访问绑定(bind)数据。 是否有任何代码示例可以提供帮助? 最佳答案 虽然这违背了
有没有办法将样式应用到 FreshMvvm MasterDetailNavigationContainer 的 Master 中的菜单。简单的样式可以是背景颜色或更改菜单项的字体。我可以看到菜单只是一
在我的项目中,我有一个 ListView ,现在听 SelectedItem 更改很容易,每个教程都有,但我找不到任何关于使用 ItemTapped 事件的内容。 我在modelPage中将事件绑定(
FreshMVVM 3.0.0 Xamarin 表单 4.2 我们的许多输入页面都是模态加载的,当用户按下“保存”时,我们会执行这样的命令 var newTemperature = new Tempe
我有一个名为 AuthHelper 的服务,我从中根据身份验证状态处理我的所有应用程序导航。为了在我使用的导航堆栈上调用推送或弹出导航方法,我需要访问 PageModel 的 CoreMethods
Resoution TL;DR:https://gist.github.com/rupe120/78f8a57f0ed7ecacbdc13fa2da8d931a 我创建了自己的扫描页面,将内置的 ZX
在进行单元测试时,我偶然发现了静态的 FreshPageModelResolver.ResolvePageModel,这显然是不可测试的。 我本来打算做一个包装器和一个接口(interface),但我
我是一名优秀的程序员,十分优秀!