有没有一种方法可以将类名转换为C#中的字符串?
作为实体框架的一部分,.Include方法接受执行查询时要联接的以点分隔的字符串列表。我有我想要加入的类模型,并且出于重构和将来代码维护的原因,我希望在引用这个类时能够具有编译时安全性。
因此,我有没有办法做到这一点:
class Foo
{
}
tblBar.Include ( Foo.GetType().ToString() );
我不认为我可以在没有实例的情况下执行GetType()。有什么想法吗?
发布于 2008-10-07 18:21:20
Include requires a property name,而不是类名。因此,它是您想要的属性的名称,而不是它的类型的名称。You can get that with reflection。
发布于 2008-10-07 18:17:22
因为GetType
是一个方法,所以不能在没有实例的情况下使用.GetType()
。
您可以从类型中获取名称,如下所示:
typeof(Foo).Name
正如Chris所指出的,如果需要程序集限定名,可以使用
typeof(Foo).AssemblyQualifiedName
发布于 2012-10-02 22:21:10
你也可以这样做:
Type CLASS = typeof(MyClass);
然后您就可以访问名称、命名空间等。
string CLASS_NAME = CLASS.Name;
string NAMESPACE = CLASS.Namespace;
https://stackoverflow.com/questions/179700
复制相似问题