繁体   English   中英

C#MVC使用反射获取泛型

[英]c# mvc get generic type using reflection

当前正在尝试找到一种获取通用类型类的类型的方法,并且一直未能找到一种方法。 我当前的工作方法如下:

public class CategoryConfiguration : EntityTypeConfiguration<Category>
    {
        public CategoryConfiguration()
        {
            ToTable("Categories");
            Property(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);
        }
    }

我认为您可以:

ToTable(typeOf(T).Name);

而关于多元化请仔细阅读

如果要查看类名,请使用nameof(T) 或者,如果您希望看到与T类型不同的名称边界,则可以使用AttributeDescription (例如,在此处阅读: https : //msdn.microsoft.com/ru-ru/library/system.componentmodel.descriptionattribute( v = vs.110).aspx ),并获取其价值。

例如:

[Description("/*name, which you would like to see*/")]
public class Category
{
    /* your class realization */
}

并在CategoryConfiguration使用

ToTable((typeof(T).GetCustomAttributes(typeof(DescriptionAttribute), true)
                  .First() as DescriptionAttribute)
                  .Description);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM