C#泛型类型GetProperties()返回0个属性
我有以下代码,我希望返回泛型类型中的属性C#泛型类型GetProperties()返回0个属性,c#,generics,reflection,C#,Generics,Reflection,我有以下代码,我希望返回泛型类型中的属性 var newType = new T(); Type t = newType.GetType(); var prop = t.GetProperties(); prop有0个属性,我无法理解为什么在调试时检查类型对象时显示的是正确的对象。我使用的对象作为泛型 public class SOPOH { public String OHDELF { get; set; } publ
var newType = new T();
Type t = newType.GetType();
var prop = t.GetProperties();
prop有0个属性,我无法理解为什么在调试时检查类型对象时显示的是正确的对象。我使用的对象作为泛型
public class SOPOH
{
public String OHDELF { get; set; }
public Decimal OHORDR { get; set; }
public String OHSTAT { get; set; }
public String OHSUSP { get; set; }
public Decimal OHODDT { get; set; }
public String OHCUSN { get; set; }
public String OHCSUB { get; set; }
}
prop返回{System.Reflection.PropertyInfo[0]}
t返回{Name=“SOPOH”FullName=“AS400_Library.Repositorys.CHGDGADV.SOPOH”}
泛型类:
public class Repository<T> : IRepository<T> where T : new()
{
public List<T> GetAll(Settings settings)
{
var returned = new List<T>();
var newType = new T();
Type t = newType.GetType();
var prop = t.GetProperties();
Console.WriteLine(prop.Length);
return returned;
}
}
将泛型函数或类的声明代码放在此处,您的代码也可以与泛型一起使用。我将您的代码放入
public void GetProperties(),其中T:new()
并调用GetProperties()
,它返回了与typeof(SOPOH)相同的属性列表。GetProperties()
..“寻求调试帮助的问题(“为什么此代码不起作用?”)必须包括[…]在问题本身中重现问题所需的最短代码”(来自)-我们无法用问题中的代码重现您的问题,这使得此问题偏离主题。我们很乐意提供帮助,所以只需提供一个最小的完整和可验证的示例来演示您的问题。有关这意味着什么的更多信息,请参见。您必须发布一个,代码本身是有效的,您没有发布的代码中一定有一个bug。让我澄清一下,您有两个不同的类,分别称为SOPOH
,其中一个是存储库
?如果是这样,您确定您正在扫描的属性就是您认为正在扫描的属性吗?我们可以创建一个,而不是一堆代码片段来拼凑吗?
public interface IRepository<T> where T : new()
{
List<T> GetAll(Settings settings);
}
public class SOPOH : Repository<SOPOH>
{
public SOPOH()
{
}
}
var t = new AS400_Library.Repositorys.CHGDGADV.SOPOH();
var values = t.GetAll(new Settings());