如何解决C#-如何基于字符串返回类型
| 例如,我有一个名为Clothing的类,该类继承自Product的抽象类。public class Clothing : Product
{
public bool IsInSeason {get; set;}
public string Material {get; set; }
public Decimal IsFeatured { get; set; }
}
编辑:
在一个函数中,如何传递字符串“服装”并返回类的类型?
ReturnTypeOfClassBasedOffOfString(string class)
{
// ...
}
解决方法
使用Type.GetType(string)
请注意,有时类名还不够。有时您需要提供AssemblyQualifiedName
\“如果类型在当前正在执行的程序集中或在Mscorlib.dll中,则只需提供其名称空间限定的类型名称即可。”
, 您可以使用
Type.GetType
,但是:您想要实现什么?我敢打赌,您需要一些简单的东西。为什么我们完全需要Clothing
类?
顺便说一句:ReturnTypeOfClassBasedOffOfString(string class)
不会编译。您需要ReturnTypeOfClassBasedOffOfString(string classname)
或ReturnTypeOfClassBasedOffOfString(string @class)
。
, 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;
}
, 您可以使用
Type.GetType(\"MyApplication.Product\",true)
为此,但是您必须包括名称空间(例如,\“ MyApplication \”)。
, 如果您想输入:
Type.GetType
足够。如果要使用它的字符串名称创建实例,则应使用
Activator.CreateInstance
祝好运
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。