我有一个.dll文件,我想导入我的项目,下面是一个属于.dll的类
我能够获得解决方案的DbContext的名称,但是在下一行 当我尝试获取它的类型时,它是null。这是可以理解的,因为该解决方案中不存在所需的类型。但在这种情况下是否可以创建类型和实例?
非常感谢任何帮助,谢谢!
static class EntityBase
{
public static DbContext MyCreateNewDbContextInstance()
{
string myDbContextName = Assembly.GetEntryAssembly().DefinedTypes
.Where(t => typeof(DbContext).IsAssignableFrom(t)).ToList().First().FullName;
Type type = Type.GetType(myDbContextName);
var context = Activator.CreateInstance(type, false);
return (DbContext)context;
}
}
答案 0 :(得分:1)
您可以使用初始LINQ查询获取Type
对象,而不是检索类型,然后从名称重新检索它:
Type type = Assembly.GetEntryAssembly()
.DefinedTypes
.Where(t => typeof(DbContext).IsAssignableFrom(t))
.FirstOrDefault();
object res = null;
if (type != null) {
res = Activator.CreateInstance(type, false);
}
return (DbContext)res;