Autofac.Core.DependencyResolutionException但是所有内容都已注册

时间:2018-05-24 18:38:55

标签: xamarin autofac

我有这部分代码:

var _containerBuilder = new ContainerBuilder();
_containerBuilder.RegisterType<NavigationService>().As<INavigationService>();

var container = _containerBuilder.Build();

using (var scope = container.BeginLifetimeScope())
{
    var navigationService = scope.Resolve<INavigationService>();
}

当我解决问题时,这会给我一个运行时异常:

  

Autofac.Core.DependencyResolutionException:期间发生错误   激活特定注册。查看内部异常   详情。注册:Activator = NavigationService   (ReflectionActivator),服务=   [MyProject.Services.Navigation.INavigationService],Lifetime =   Autofac.Core.Lifetime.CurrentScopeLifetime,Sharing = None,Ownership   = OwnedByLifetimeScope ---&gt;找不到类型为'MyProject.Services.Navigation.NavigationService&#39;的可访问构造函数。 (见内心   详情除外。)

我的界面是空的,我的类也有无参数构造函数。 我的项目是使用.Net标准2.0的Xamarin.Forms项目,我的autofac版本是最后一个稳定版本(4.8.1)。

我很无能为力,因为所有的示例项目似乎都做得不多。

就像我说的那样,我清空了类和接口只是为了看问题是否来自那里,但我仍然有例外。

public interface INavigationService { }

public class NavigationService:INavigationService
 { 

 public NavigationService()
      { 
      }

 }

1 个答案:

答案 0 :(得分:0)

这可能听起来很愚蠢,但在我删除并重新创建项目后,它最终工作了。我确定它是相同的类,因为我只复制/粘贴。

唯一的区别是我在KO项目中的Autofac之前安装了其他nugets(例如:EntityFramework Sqlite)。在OK项目中,我的第一个nuget安装是Autofac。