是否可以做这样的事情?
创建一个类并将其放入程序集中,例如
namespace some
{
public class foo{
..etc
}
将其加载到当前的appdomain
Assembly.LoadFrom("some.foo.dll");
获取输出
Type t = Type.GetType("some.foo");
基本上,无论如何都要将实际类型转换为t?
答案 0 :(得分:1)
我不确定我是否理解这个问题。我想你想要实例化这个类型。
这会调用公共默认构造函数:
// specify the full name and assembly name, to make sure that you get the some.foo
// from the assembly in question.
Type t = Type.GetType("some.foo, some.foo");
object instance = Activator.CreateInstance(t);
查看重载以调用其他构造函数。
答案 1 :(得分:1)
您可以使用反射来实例化对象。例如,要使用默认构造函数进行实例化:
Type.GetType("Foo").GetConstructor().Invoke();
要使用带字符串的构造函数进行实例化,请使用:
Type.GetType("Foo").GetConstructor(new[] { typeof(string) }).Invoke(new [] { "bar" });
答案 2 :(得分:0)
var assembly = Assembly.LoadFrom("SomeAssembly.dll");
assembly.GetType("SomeType");