Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/281.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
c#mvc使用反射获取泛型类型_C#_Inheritance_Reflection - Fatal编程技术网

c#mvc使用反射获取泛型类型

c#mvc使用反射获取泛型类型,c#,inheritance,reflection,C#,Inheritance,Reflection,目前正在试图找到一种方法来获取泛型类的类型,但一直无法找到这样做的方法。我目前的工作方法如下: public class CategoryConfiguration : EntityTypeConfiguration<Category> { public CategoryConfiguration() { ToTable("Categories"); Property(c => c.Name

目前正在试图找到一种方法来获取泛型类的类型,但一直无法找到这样做的方法。我目前的工作方法如下:

public class CategoryConfiguration : EntityTypeConfiguration<Category>
    {
        public CategoryConfiguration()
        {
            ToTable("Categories");
            Property(c => c.Name).IsRequired().HasMaxLength(50);
        }
    }
公共类类别配置:EntityTypeConfiguration
{
公共类别配置()
{
ToTable(“类别”);
属性(c=>c.Name).IsRequired().HasMaxLength(50);
}
}
我想把这个方法改成:

public class CategoryConfiguration : EntityTypeConfiguration<T>
    {
        public CategoryConfiguration()
        {
            ToTable(/*get string representation of 'T' here and pluralize*/);
            Property(c => c.Name).IsRequired().HasMaxLength(50);
        }
    }
公共类类别配置:EntityTypeConfiguration
{
公共类别配置()
{
ToTable(/*在这里获取'T'的字符串表示形式并将其复数化*/);
属性(c=>c.Name).IsRequired().HasMaxLength(50);
}
}
我认为您可以:

ToTable(typeOf(T).Name);

关于多重化,请阅读

如果您想查看类名,请使用
nameof(T)
。或者,如果您希望看到不同的名称与
T
类型绑定,您可以使用
属性
说明
,例如(阅读此处:),并获取其值

例如:

[Description("/*name, which you would like to see*/")]
public class Category
{
    /* your class realization */
}
类别配置中使用

ToTable((typeof(T).GetCustomAttributes(typeof(DescriptionAttribute), true)
                  .First() as DescriptionAttribute)
                  .Description);
在C#6.0中,可以使用nameof(T)