TinyIoC、Xamarin.iOS、链接器设置

2024-04-28

我正在尝试让 TinyIoC 在 Xamarin.iOS 上运行,但运气不太好。我的项目链接器设置设置为“仅链接 SDK 程序集”。

我实际上正在做这么简单的事情:

public interface IPerson { int age { get; } }
public class Person : IPerson { public int age { get { return 99; } } }

然后我的注册代码如下所示(我刚刚将其放置在玩具应用程序的 AppDelegate 中):

TinyIoCContainer.Current.Register<IPerson,Person>.AsMultiInstance();

当我尝试获取 IPerson 时,出现运行时异常,指出 IPerson 无法解析(此代码可在玩具应用程序的 AppDelegate 中的注册代码之后立即找到):

IPerson person = TinyIoCContainer.Current.Resolve<IPerson>();

这是错误:

Unable to resolve type: TinyTest.IPerson

但是,如果我将链接器设置更改为“不链接”,则一切正常。但这显然是站不住脚的,因为二进制文件变得非常庞大。

我尝试将 [Preserve] 属性放在 IPerson 接口和 Person 类上,但没有成功。我还尝试手动声明 IPerson 类型的变量并使用 new Person() 实例化它,然后获取 Age 属性,只是为了确保该类型包含在构建中,但也没有运气。

感觉我在这里错过了一些东西 - 有人能指出我正确的方向吗?

谢谢你!


这是一个bug https://bugzilla.xamarin.com/show_bug.cgi?id=14863因为反射是用来调用内部的Expression<TDelegate>构造函数。

链接器无法分析反射使用情况(它超出了静态分析范围),因此它必须了解这些special cases.

但这显然是站不住脚的,因为二进制文件变得非常庞大。

继续使用默认值Link SDK选项,但添加--linkskip=System.Core给你的附加 mtouch 参数,在你的里面项目选项, iOS 构建.

这样,只有 System.Core(来自 SDK)不会被链接,并且大小的增加会小得多。当然,这只是一个解决方法,直到新版本正确解决该问题为止。

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

TinyIoC、Xamarin.iOS、链接器设置 的相关文章

  • MPMoviePlayerController 播放 YouTube 视频

    如何在 iPhone 上的 MPMoviePlayerController 中播放 YouTube 视频 同时避免进入全屏模式 这个问题已经在这里提出 MPMoviePlayerController 正在播放 YouTube 视频吗 htt
  • Xcode 4 Core Data:如何使用在数据模型编辑器中创建的获取属性

    如何在 Xcode 4 中实现获取的属性 Here is an example of two entities a book and a page 我按照此处的指南创建了一个获取的属性 该属性使用变量 FETCH SOURCE 引用来自源实
  • 滚动视图下的iOS swift 4 imageview:双击缩小

    我已经应用了图像视图来通过捏合来放大 缩小 那很容易 当在图像视图上应用双击时 无法检测到选择方法 我使用 Xcode 9 和 swift 4 您能告诉我滚动视图是否应该应用双击手势吗 var previewImage UIImage ni
  • UITextInputMode currentInputMode 已弃用。建议更换?

    在我们的应用程序中 我们想检测当前的键盘语言 例如 如果用户在 设置 gt 常规 gt 键盘 gt 键盘 下设置了多种语言键盘 我们想知道他们正在输入什么语言 并在发生变化时从 NSNotificationCenter 收到通知 void
  • 手动设置时间和日期时,iOS 10 中的重复每日本地通知不会被触发?

    我正在尝试通过触发每日通知来测试 iOS 10 中的本地通知 我正在使用以下示例项目 通知UI 演示 https github com appcoda NotificationsUI Demo 该应用程序中有以下代码之一 let calen
  • iOS 版 Sunrise 如何使用 iCloud 凭据访问我们的日历?

    iOS 上的 Sunrise 日历在版本 2 中添加了对 iCloud 日历的支持 从这一页 http blog sunrise im post 74146344289 about icloudSunrise 团队是这样说的 当您输入 iC
  • 如何使用 PKAddPassButton 创建“添加到苹果钱包”按钮以进行本地化通行证

    在我的 iOS 项目中 我有一个屏幕 允许用户创建苹果通行证并将其添加到钱包中 Apple 建议使用 PKAddPassButton 创建 添加到苹果钱包 按钮 当我尝试使用以下代码创建苹果通行证时 let passButton PKAdd
  • Cocoapods 测试链接器错误

    每当我构建测试目标 Xcode 生成的标准目标 时 构建都会失败并出现神秘错误 framework not found Pods AppName AppNameTests 我认为这意味着无法找到为我的测试生成的 pod 目标 我的 podf
  • TestFlight iOS 应用程序 get-task-allow 问题

    我在 ios 的 testflight 中有一个名为 MapItTrackIt 的应用程序 一切都进展顺利 我刚刚更新到 xcode 5 1 我按照以往的方式构建了该应用程序 相同的配置文件和临时证书 这次 当我尝试上传 IPA 文件时 我
  • 检测用户何时清除通知中心的通知

    我的应用程序需要知道用户是否使用清除按钮从通知中心删除 清除应用程序通知 是否可以检测用户何时从通知中心删除通知或抓取通知中心上的一组通知 你 即App 无法与NotificationCenter交互 NotificationCenter与
  • 我可以通过 PresentFeedDialogModallyWithSession 传递给 FBWebDialogs 的完整合法参数集是什么

    我查看了 Facebook 上的示例代码 这里 https developers facebook com docs howtos feed dialog using ios sdk https developers facebook co
  • 由于没有系统应用程序而终止

    这个错误让我发疯 我有一个按钮 我想移动到视图控制器 如果我将其设置为初始视图控制器 我可以打开该视图控制器 但现在我通过单击按钮来调用它 视图控制器包含一个自定义视图 我在绘制矩形上放置了一个断点 当绘制矩形完成时 模拟器终止 我在屏幕上
  • 在 UICollectionView 下面插入子视图

    当我在 UICollectionView 下方添加子视图时 有时子视图会显示在 UICollectionView 单元格上方 这是子视图插入代码 self collectionView insertSubview self garmentV
  • UITableView 无法一直滚动到底部[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我只是好奇 我做了一些UITable
  • 使用 FFT 执行音频分析

    我已经被这个问题困扰好几天了 并且浏览了几乎所有相关的 StackOverflow 页面 通过这次活动 我现在对 FFT 是什么及其工作原理有了更深入的了解 尽管如此 我在将其实现到我的应用程序中时遇到了极大的困难 简而言之 我想做的是为我
  • 领域数据库对象看起来是空的,但实际上不是

    我在用Realm https realm io对于一个小而简单的项目 我正在使用最新版本的框架 昨天从 Github 编译 和当前 AppStore 版本的 Xcode with Swift 2 1 我正在通过 segue 将 Realm
  • 自定义 OpenVPN iOS 客户端 [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我正在开发一个自定义 iOS OpenVPN 客户端 我找到了这个原生 OpenVPN 客户端核心源码https staging op
  • Facebook iOS 选择好友表空白

    我正在尝试将 选择的朋友 添加到我的 iOS 应用程序中 我设置了登录视图 登录后 我打开朋友选择器 但它显示为空白 我看到带有 完成 和 取消 按钮的表 但表中没有加载任何朋友 IBAction selectFriendsButtonAc
  • 方法调用中的插入符[重复]

    这个问题在这里已经有答案了 我正在阅读本教程 并遇到了这行代码 这让我感到困惑 localSearch startWithCompletionHandler MKLocalSearchResponse response NSError er
  • 从基元创建自定义形状

    我正在尝试通过组合原始形状来创建自定义物理形状 目标是创建一个圆形立方体 合适的方法似乎是初始化 形状 变换 我在这里找到的https developer apple com library prerelease ios documenta

随机推荐