在跨平台 (Xamarin) 应用程序中使用哪个 IoC 容器? [关闭]

2024-02-02

我正在 ASP.NET 中构建适用于 Windows、OSX、iOS、Windows Mobile、Android 和 Web 的跨平台应用程序。对于每个客户端,我都使用 C#(我使用的是 Xamarin)。一切都在单一 VS 解决方案中。我的核心代码(域)位于类库(便携式),因此可以在每个 UI(客户端)中使用。

我想在该项目中使用 IoC 容器,这是我的问题: 我不知道我选择的 IoC 是否适用于每个客户端。我知道例如Ninject不适用于可移植类库 - 有Ninject.便携式对于这样的项目。这让我思考,我选择的 IoC 可能无法在我的一个客户端中工作,这会很糟糕。

所以,我的问题是:哪些 IoC 容器可用于可移植类库以及 Visual Studio 2015 中制作的每个客户端 (UI)?

我感兴趣的是简易注射器,但现在我有这些疑问。


我在 IoC 容器上编写了一个小型抽象层,并为与 Xamarin 配合使用的容器编写了插件。它们可在 NuGet 上获取:

https://www.nuget.org/packages?q=xlabs.ioc https://www.nuget.org/packages?q=xlabs.ioc

经测试的容器(单元测试位于 GitHub 中 https://github.com/XLabs/Xamarin-Forms-Labs/tree/master/UnitTesting/IocTests):

  • Autofac
  • Ninject
  • 简单注入器
  • TinyIOC
  • Unity

马特·惠顿 (Matt Whetton) 写了一篇出色的文章如何使用它们的指南 http://www.codenutz.com/autofac-ninject-tinyioc-unity-with-xamarin-forms-labs-xlabs/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在跨平台 (Xamarin) 应用程序中使用哪个 IoC 容器? [关闭] 的相关文章

  • 如何检查QProcess是否正确执行?

    QProcess process sdcompare QString command sdcompare QStringList args sdcompare command sdcompare diff args sdcompare lt
  • 如何将隐藏字段从一个页面传递到另一页面?

    我有一个 Net 类库 我想从一次代码隐藏页面传递一个隐藏变量 并在另一个代码隐藏页面中获取它 请注意 我没有任何可以使用表单标签和 get post 方法的设计页面 aspx 页面 我们应该怎么做 注意 我想使用隐藏字段将值从一页传递到另
  • 如何修复此错误“GDI+ 中发生一般错误”?

    从默认名称打开图像并以默认名称保存 覆盖它 我需要从 Image Default jpg 制作图形 将其放在 picturebox1 image 上并在 picurebox1 上绘制一些图形 它有效 这不是我的问题 但我无法保存 pictu
  • 单元测试一起运行时失败,单独运行时通过

    所以我的单元测试遇到了一些问题 我不能只是将它们复制并粘贴到这里 但我会尽力而为 问题似乎是 如果我一项一项地运行测试 一切都会按预期进行 但如果我告诉它一起运行测试 则 1 5 将通过 TestMethod public void Obj
  • C++中的类查找结构体数组

    我正在尝试创建一个结构数组 它将输入字符串链接到类 如下所示 struct string command CommandPath cPath cPathLookup set an alarm AlarmCommandPath send an
  • 将 System.Windows.Input.KeyEventArgs 键转换为 char

    我需要将事件参数作为char 但是当我尝试转换 Key 枚举时 我得到的字母和符号与传入的字母和符号完全不同 如何正确地将密钥转换为字符 这是我尝试过的 ObserveKeyStroke this new ObervableKeyStrok
  • 用于检查项目文件中的项目变量和引用路径的 api

    我正在研究一个 net application VS2010 与 x 没有 解和变量号这些解决方案中的项目数量 我需要检查项目属性 特定于一定数量的项目 是否同质 并且检查 验证构建期间的参考路径 有没有一个API是这样的吗 如果没有 我该
  • 无法在 Windows 运行时组件库的 UserControl 中创建依赖项属性

    我想在用户控件内创建数据可绑定属性 这个用户控件包含一个 Windows 运行时组件 项目 我使用下面的代码来创建属性 public MyItem CurrentItem get return MyItem GetValue Current
  • 使用 JNI 从 Java 代码中检索 String 值的内存泄漏

    我使用 GetStringUTFChars 从使用 JNI 的 java 代码中检索字符串的值 并使用 ReleaseStringUTFChars 释放该字符串 当代码在 JRE 1 4 上运行时 不会出现内存泄漏 但如果相同的代码在 JR
  • Rx 中是否有与 Task.ContinueWith 运算符等效的操作?

    Rx 中是否有与 Task ContinueWith 运算符等效的操作 我正在将 Rx 与 Silverlight 一起使用 我正在使用 FromAsyncPattern 方法进行两个 Web 服务调用 并且我想这样做同步地 var o1
  • 在一个字节中存储 4 个不同的值

    我有一个任务要做 但我不知道从哪里开始 我不期待也绝对不想要代码中的答案 我想要一些关于该怎么做的指导 因为我感到有点失落 将变量打包和解包到一个字节中 您需要在一个字节中存储 4 个不同的值 这些值为 NAME RANGE BITS en
  • 上下文敏感与歧义

    我对上下文敏感性和歧义如何相互影响感到困惑 我认为正确的是 歧义 歧义语法会导致使用左推导或右推导构建多个解析树 所有可能的语法都是二义性的语言是二义性语言 例如 C 是一种不明确的语言 因为 x y 总是可以表示两个不同的事物 如下所述
  • 如何将自定义 JSON 文件添加到 IConfiguration 中?

    我正在使用 asp net Autofac 我正在尝试加载自定义 JSON 配置文件 并基于该文件创建 实例化 IConfiguration 实例 或者至少将我的文件包含到默认情况下构建的 IConfiguration asp net 中
  • 如何编写一个同时需要请求和响应Dtos的ServiceStack插件

    我需要提供本地化数据服务 所有本地化的响应 Dto 都共享相同的属性 IE 我定义了一个接口 ILocalizedDto 来标记那些 Dto 在请求端 有一个ILocalizedRequest对于需要本地化的请求 Using IPlugin
  • 私有模板函数

    我有一堂课 C h class C private template
  • HttpWebRequest 在第二次调用时超时

    为什么以下代码在第二次 及后续 运行时超时 代码挂在 using Stream objStream request GetResponse GetResponseStream 然后引发 WebException 表示请求已超时 我已经尝试过
  • 有人可以提供一个使用 Amazon Web Services 的 itemsearch 的 C# 示例吗

    我正在尝试使用 Amazon Web Services 查询艺术家和标题信息并接收回专辑封面 使用 C 我找不到任何与此接近的示例 所有在线示例都已过时 并且不适用于 AWS 的较新版本 有一个开源项目CodePlex http www c
  • C++ 密码屏蔽

    我正在编写一个代码来接收密码输入 下面是我的代码 程序运行良好 但问题是除了数字和字母字符之外的其他键也被读取 例如删除 插入等 我知道如何避免它吗 特q string pw char c while c 13 Loop until Ent
  • 使用 GROUP 和 SUM 的 LINQ 查询

    请帮助我了解如何使用带有 GROUP 和 SUM 的 LINQ 进行查询 Query the database IEnumerable
  • 检查Windows控制台中是否按下了键[重复]

    这个问题在这里已经有答案了 可能的重复 C 控制台键盘事件 https stackoverflow com questions 2067893 c console keyboard events 我希望 Windows 控制台程序在按下某个

随机推荐

  • GAC 似乎包含两个具有相同名称、版本和公钥令牌的程序集

    我目前正在凝视这一页 http gacviewer cloudapp net Default aspx声称会列出典型 Azure VM 上的 GAC 内容 请注意 以下程序集和许多其他程序集列出了两次 AuditPolicyGPManage
  • 我如何在我的 Connect 4 java 代码中查看获胜者? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我不明白如何在连四中找到获胜者 请告诉我我应该怎么想以及如何在连四中找到获胜者 我应该如何使用 for 循环来找到它们 我应该如何使用
  • BitTorrent 扩展协议

    我正在尝试用java编写自己的bittorrent客户端 这是一个make work项目来刷新我的java技能 我一直停留在开发的某个阶段 尽管有一些用于 BitTorrent 开发的论坛 但它们似乎并不十分活跃 到目前为止我可以执行以下操
  • Android ICS:JNI 错误尝试使用过时的本地引用 0x1

    将我的手机升级到 android 4 03 ics 后 我的游戏不再打开 它只是关闭 设备上没有任何错误消息 在 eclipse 上也有此消息 04 02 16 55 27 672 E dalvikvm 26884 JNI ERROR ap
  • VIM 在quickfix中搜索模式

    基本上我需要创建一个快速修复缓冲区 列出与正则表达式匹配的所有行 什么是最好的方法 全局命令可能不是最好的 但我认为它应该可用 全局命令的输出是完美的 但我需要它超级链接匹配的线 您也可以不使用全局命令并坚持使用内置命令 使用 vimgre
  • 在response.sendRedirect()中传递参数 - JSP

    我是网络技术新手 我正在尝试编写一个简单的程序 要求用户输入名称 如果有效 则页面重定向到另一个 jsp 文件 RedirectIfSuccessful jsp 如果无效则页面重定向到 RedirectIfFailed jsp 我正在使用r
  • 有没有办法访问 Skype IM 日志?

    我尝试查看 C Users name AppData Roaming Skype 发现一个名为 chatsync 的文件夹 其中有一些神秘的文件夹 其中的文件以 dat 结尾 我几乎可以肯定这些是聊天日志 但我不知道如何正确打开这些文件 记
  • 指定为定义者的 MySQL 用户不存在

    我正在尝试使用 php 调用存储过程 前一天这是有效的 但今天我收到一个错误 指定为定义者的用户 用户名 前一天的 ip 不存在 该程序位于主机中 我通过 cpanel 的远程 MySql 授予我的 IP 访问权限 我使用的代码是正确的 取
  • Haskell 中类型和数据类型有什么区别?

    我对 a 之间的区别有点困惑type and a 数据类型在哈斯克尔 从我遇到的文献中我得到的印象是它们是不同的概念 Type and 数据类型指的是完全相同的概念 Haskell 关键字type and data但有所不同 data允许您
  • 如何使用 Gson 反序列化带有可选字段的 json

    我使用 Gson 使用以下代码从给定 API 反序列化 JSON 字符串 Gson gson new Gson Map
  • Codeigniter URL 重写

    我正在使用以下内容htaccess脚本以便我可以隐藏index php来自 URI RewriteEngine on RewriteCond 1 index php resources assets robots txt RewriteCo
  • 如何使具有自定义布局的操作按钮的样式类似于 Android 3.0+ 中的标准操作按钮

    我在使用 honeycomb 操作栏中的自定义操作按钮时遇到了一些麻烦 我正在添加一个使用自定义布局的菜单项 使用 android actionLayout 属性 自定义布局的原因是我想要一个具有两行可以动态更新的文本的按钮 但是 我仍然希
  • 资源 -> 当前项目触发器已从 Apps 脚本代码编辑器中消失

    我使用 资源 gt 当前项目 触发器来控制某些项目的执行时间 例如 我的一些项目会每天早上 4 点左右更新电子表格 现在 当我单击 资源 时 当前项目触发器选项消失了 发生了什么 这个更改是在最后一天左右进行的 因为上次我在做一个项目时它就
  • 采用无服务器的 MoonMail Lambda 架构

    我一直在研究这个项目 因为让整个系统成为 Lambda 函数集合的想法似乎非常有吸引力 事实上 几年前我编写了一些软件 其功能与 MoonMail 几乎相同 并且由于某些规格发生了变化而需要更新 我正在评估将我的软件移植到 Lambda 或
  • concatMap 的作用是什么? [复制]

    这个问题在这里已经有答案了 什么是concatMap做 我知道什么concat and map做 是两者放在一起还是完全不同的功能 是的concatMap函数只是concat and map放在一起 由此得名 将函数放在一起只是意味着组合它
  • 如何使用 C99 标准类型在大多数平台上实现最大的可移植性和效率?

    首先 这是我对这个问题的理解和认为是正确的 对单个变量使用快速数据类型 例如计数器或for循环索引 例如 define LOOP COUNT 100U uint fast8 t index for index 0 index lt LOOP
  • 在 C# 中使用 SmtpClient 发送电子邮件时出现问题

    我有一个 ASP Net MVC 应用程序 我正在尝试发送 HTML 电子邮件 我通过读取带有标记的 HTML 文件 然后替换标记来完成此操作 这部分很好 生成的 HTML 正是我想要的 但是当我发送电子邮件时 我收到的内容看起来像
  • CMake - 将多个库合并为一个

    假设我有可执行文件 A B C 并且有外部库 X Y Z SET EXTERNAL LIB X Y Z TARGET LINK LIBRARIES A EXTERNAL LIB TARGET LINK LIBRARIES B EXTERNA
  • Akka 远程 `system.shutdown()` 导致 EndpointDisociatedException?

    我有简单的客户端和服务器设置 在发送所有异步请求并在服务器确认后的某个时刻 客户端调用system shutdown 这导致服务器akka remote EndpointDisassociatedException和一堆日志错误 如下所示
  • 在跨平台 (Xamarin) 应用程序中使用哪个 IoC 容器? [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在 ASP NET 中构建适用于 Windows OSX iOS Windows Mobile An