我正在尝试注册一些通用接口并解决它们。
我有注册功能
private static void RegisterFolderAssemblies(Type t,string folder)
{
var scanner = new FolderGenericInterfaceScanner();
var scanned = scanner.Scan(t,folder); // gets the implementations from a specific folder
scanned.ForEach(concrete =>
{
if (concrete.BaseType != null || concrete.IsGenericType)
{
myContainer.RegisterType(t, Type.GetType(concrete.AssemblyQualifiedName), concrete.AssemblyQualifiedName);
}
});
}
由引导程序调用
RegisterFolderAssemblies(typeof(IConfigurationVerification<>),Environment.CurrentDirectory);
注册似乎可以通过,但是当我尝试解决它们时
Type generic = typeof(IConfigurationVerification<>);
Type specific = generic.MakeGenericType(input.Arguments[0].GetType());
var verifications = BootStrap.ResolveAll(specific);
input.Arguments[0] 是实现泛型的类型的对象我也尝试使用 typeof(IConfigurationVerification<>) 代替并得到相同的错误。
当 ResolveAll 是
public static List<object> ResolveAll(Type t)
{
return myContainer.ResolveAll(t).ToList();
}
我收到一个 ResolutionFailedException 消息“当前类型 Infrastructure.Interfaces.IConfigurationVerification`1[Infrastructure.Configuration.IMLogPlayerConfiguration+LoadDefinitions] 是一个接口,无法构造。您是否缺少类型映射?”
任何帮助都会很棒。
提前致谢