을 당신이 만약 단지 너 여기 부동산의 이름을 원해. 나는 사냥꾼이 준 대답을 다듬을 뿐이다. 동일한 메소드를 반환 유형으로 문자열과 함께 사용할 수 있습니다.
public string GetEntitiName<T>() where T : class
{
PropertyInfo propInfo = typeof(MyDatabaseContext).GetProperties().Where(p => p.PropertyType == typeof(DbSet<T>)).FirstOrDefault();
string propertyName = propInfo.Name; //The string has the property name ..
return propertyName;
}
나는 당신의 상황과 비슷한 샘플을 시도했다. List를 DbSet으로 바꾸어보십시오.
class Program
{
public static void GetEntities<T>() where T : class
{
var info = typeof(TestClass1).GetProperties().Where(p => p.PropertyType == typeof(List<T>));
Console.WriteLine(info.FirstOrDefault().Name);
}
static void Main(string[] args)
{
GetEntities<int>();
Console.ReadLine();
}
}
public class TestClass1
{
public List<int> IntTest { get; set; }
public List<double> DoubleTest { get; set; }
public List<string> IStringTest { get; set; }
}
이 샘플은 작동합니다.
:
설명 :
예 내가 옳다 또는이 페이지의 다른 방문자가 이런 식으로 뭔가를 필요로하는 경우, 단지 쉽게 다음 코드를 사용 재산의 이름이 필요 하신가요? –
좋은 지적. 변수 'EntitiesC'의 유형 'EntityC'는 설계시에도 널리 사용 가능해야합니다. – ProfK