例如,我有一个名为Clothing的类,它继承自Product的抽象类。
public class Clothing : Product
{
public bool IsInSeason {get; set;}
public string Material {get; set; }
public Decimal IsFeatured { get; set; }
}
修改 在一个函数中,我如何能够传递字符串“Clothing”并返回类的类型?
ReturnTypeOfClassBasedOffOfString(string class)
{
// ...
}
答案 0 :(得分:5)
请注意,有时候课程名称不够。有时您需要提供AssemblyQualifiedName
“如果类型在当前正在执行的程序集中或在Mscorlib.dll中,则提供由其名称空间限定的类型名称就足够了。”
答案 1 :(得分:1)
您可以使用Type.GetType
,但是:您希望实现什么目标?我敢打赌你需要更简单的东西。为什么我们需要Clothing
课?
BTW:ReturnTypeOfClassBasedOffOfString(string class)
无法编译。您需要ReturnTypeOfClassBasedOffOfString(string classname)
或ReturnTypeOfClassBasedOffOfString(string @class)
。
答案 2 :(得分:0)
static Type ReturnTypeOfClassBasedOffOfString(string className)
{
foreach (Assembly a in AppDomain.Current.GetAssemblies ())
{
foreach (Type t in a.GetTypes ())
{
if (t.Name == className) // Ignore namespace
return t;
}
}
return null;
}
答案 3 :(得分:0)
您可以使用
Type.GetType("MyApplication.Product", true)
为此目的,但您必须包含命名空间(例如,“MyApplication”)。
答案 4 :(得分:0)
如果你想输入:
Type.GetType
就足够了。如果你想使用它的字符串名称创建实例,你应该使用
Activator.CreateInstance
好运