我正在尝试让 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
但是,如果我将链接器设置更改为“不链接”,则一切正常。然而,这显然是站不住脚的,因为二进制文件变得巨大。
我尝试在 IPerson 接口和 Person 类上放置 [Preserve] 属性,但没有骰子。我还尝试手动声明一个 IPerson 类型的变量并使用 new Person() 对其进行实例化,然后获取 age 属性,以确保该类型包含在构建中,但也没有运气。
感觉好像我在这里遗漏了一些东西 - 有人可以指出我正确的方向吗?
谢谢!