我有一个名为IStep
的接口,可以进行一些计算(参见“Execution in the Kingdom of Nouns”)。在运行时,我想按类名选择适当的实现。
//使用如下:
istep step=getstep(sname);
最佳答案
你的问题很混乱…
如果要查找实现istep的类型,请执行以下操作:
foreach (Type t in Assembly.GetCallingAssembly().GetTypes())
{
if (!typeof(IStep).IsAssignableFrom(t)) continue;
Console.WriteLine(t.FullName + " implements " + typeof(IStep).FullName);
}
如果您已经知道所需类型的名称,请执行以下操作
IStep step = (IStep)Activator.CreateInstance(Type.GetType("MyNamespace.MyType"));