Assembly asm = Assembly.Load("Test"); var typesToRegister = asm.ExportedTypes .Where(type => !String.IsNullOrEmpty(type.Namespace)) .Where(type => type.BaseType != null && type.BaseType.IsGenericType && type.BaseType.GetGenericTypeDefinition() == typeof(EntityTypeConfiguration<>)); foreach (var type in typesToRegister) { dynamic configurationInstance = Activator.CreateInstance(type); modelBuilder.Configurations.Add(configurationInstance); }
上面是一段通过反射把类附加到EF上下文的代码,原代码是var typesToRegister = asm.GetTypes(),可以获得正确的类,但是放到我的代码里,类就变成了test+<>.,而用ExportedTypes就能获得正确的test,这是为什么呢?
版本都是.net4.5.2