有没有办法获取类名并将其转换为C#中的字符串?
作为实体框架的一部分,.Include方法在执行查询时接受以点分隔的字符串列表以加入.我有我想要加入的类模型,并且出于重构和未来代码维护的原因,我希望能够在引用这个类时具有编译时的安全性.
那么,有没有办法可以做到这一点:
class Foo { } tblBar.Include ( Foo.GetType().ToString() );
我不认为我可以在没有实例的情况下执行GetType().有任何想法吗?
.GetType()
没有实例就不能使用,因为它GetType
是一种方法.
您可以从类型中获取名称,如下所示:
typeof(Foo).Name
正如Chris所指出的,如果您需要可以使用的程序集限定名称
typeof(Foo).AssemblyQualifiedName
Include需要属性名称,而不是类名.因此,它是您想要的属性的名称,而不是其类型的名称. 你可以通过反思得到它.
你也可以这样做:
Type CLASS = typeof(MyClass);
然后你可以访问名称,命名空间等.
string CLASS_NAME = CLASS.Name; string NAMESPACE = CLASS.Namespace;