Cannot instantiate implementation type '*****Repository`1[TEntity]' for service type '****.IRepository`1[TEntity]'

如上报错是在依赖注入时出错的
上代码

点击查看代码
                        Assembly asmCore = Assembly.Load("DealerPlatform.Core");
			Type resitoryType = asmCore.GetTypes().FirstOrDefault(m => m.Name == "Repository`1");
			Type interFaceType = resitoryType?.GetInterface("IRepository`1");
			return services.AddTransient(interFaceType, resitoryType);
问题原因是:反射去获取泛型接口,泛型类时有问题,至于原因是什么,目前我还不知道 想要反射获取类型进行注入,再写一个普通的类,让反射类继承它,读取的时候直接读取它即可 坑的要命,一下午又没了。。。。。。。。。 修改之后的代码
点击查看代码
                        var asmCore = Assembly.Load("DealerPlatform.Core");
			
			var test = asmCore.GetTypes();
			var interFaceTypes = asmCore.GetTypes().Where(m => m.IsAssignableTo(typeof(IRepository))
			&& !m.IsInterface
			&& !m.IsAbstract);
			foreach (var interFaceType in interFaceTypes)
			{
				services.AddTransient(typeof(IRepository<>), interFaceType);
			}
			return services;
posted @ 2022-01-21 16:38  rookiexwang  阅读(1325)  评论(2编辑  收藏  举报