2014-09-04 49 views
3

因此,我今天将Xamarin安装更新为最新的稳定版本。自更新以来,我的应用程序将无法在iOS上运行(在Android上运行正常)......错误是它无法解析构造函数。Autofac退出Xamarin更新后在iOS上解析构造函数

Autofac.Core.DependencyResolutionException:上键入“FutureState.AppCore.Migrations.Migration001”没有构造可以用构造的取景器Autofac.Core.Activators.Reflection.DefaultConstructorFinder“中找到。

我原来的构造是

public Migration001(IUserRepository userRepository, 
         IRoleRepository roleRepository, 
         IPermissionRepository permissionRepository, 
         IPasswordHasher passwordHasher) 
    { 
     _userRepository = userRepository; 
     _roleRepository = roleRepository; 
     _permissionRepository = permissionRepository; 
     _passwordHasher = passwordHasher; 
     MigrationVersion = 1; 
    } 

,但我甚至试图将其更改为服务定位只是为了看看Autofac会发现构造。

public Migration001() 
    { 
     _userRepository = App.Container.Resolve<IUserRepository>(); 
     _roleRepository = App.Container.Resolve<IRoleRepository>(); 
     _permissionRepository = App.Container.Resolve<IPermissionRepository>(); 
     _passwordHasher = App.Container.Resolve<IPasswordHasher>(); 
     MigrationVersion = 1; 
    } 

但不幸的是,它导致了完全相同的问题。

Autofac.Core.DependencyResolutionException:上键入“FutureState.AppCore.Migrations.Migration001”没有构造可以用构造的取景器Autofac.Core.Activators.Reflection.DefaultConstructorFinder“中找到。

什么会导致这样的事情?这是一个Xamarin.Forms应用程序,因此完全相同的代码在Android上运行时没有问题。

回答

1

看起来这是当时Xamarian发行版的问题。我已经重新更新到最新版本(昨天),不再有这个问题。

此外,在2014年9月发布的版本中还存在一些突破性错误,所以如果您使用3.5 ...升级。

2

将Xamarin iOS SDK升级到Alpha(3.9.289)后,我遇到了类似的问题。将链接器行为更改为“不链接”解决了我的问题。

+0

解决了我的问题 – CrazyDart 2015-03-12 19:37:43

+0

解决了问题,但这只是一种解决方法。 – 2015-06-05 12:30:11

相关问题