首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在C#中以字符串形式获取类的名称

在C#中以字符串形式获取类的名称
EN

Stack Overflow用户
提问于 2008-10-08 02:14:46
回答 7查看 93.9K关注 0票数 67

有没有一种方法可以将类名转换为C#中的字符串?

作为实体框架的一部分,.Include方法接受执行查询时要联接的以点分隔的字符串列表。我有我想要加入的类模型,并且出于重构和将来代码维护的原因,我希望在引用这个类时能够具有编译时安全性。

因此,我有没有办法做到这一点:

代码语言:javascript
运行
复制
class Foo
{
}

tblBar.Include ( Foo.GetType().ToString() );

我不认为我可以在没有实例的情况下执行GetType()。有什么想法吗?

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2008-10-07 18:21:20

Include requires a property name,而不是类名。因此,它是您想要的属性的名称,而不是它的类型的名称。You can get that with reflection

票数 12
EN

Stack Overflow用户

发布于 2008-10-07 18:17:22

因为GetType是一个方法,所以不能在没有实例的情况下使用.GetType()

您可以从类型中获取名称,如下所示:

代码语言:javascript
运行
复制
typeof(Foo).Name

正如Chris所指出的,如果需要程序集限定名,可以使用

代码语言:javascript
运行
复制
typeof(Foo).AssemblyQualifiedName
票数 109
EN

Stack Overflow用户

发布于 2012-10-02 22:21:10

你也可以这样做:

代码语言:javascript
运行
复制
Type CLASS = typeof(MyClass);

然后您就可以访问名称、命名空间等。

代码语言:javascript
运行
复制
 string CLASS_NAME = CLASS.Name;
 string NAMESPACE = CLASS.Namespace;
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/179700

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档