我有一个为给定类型返回propertyInfo
的方法。我使用接口对象调用此方法,但type.IsInterface
返回false。
public IEnumerable<PropertyInfo> GetProperties(Type type)
{
if (!type.IsInterface)
return type.GetProperties();
return (new Type[] { type })
.Concat(type.GetInterfaces())
.SelectMany(i => i.GetProperties());
}
谁能告诉我这里有什么问题?
我正在使用rhino mock来生成传递给此函数的接口模拟。
以下是代码,我如何调用此函数...
var info = GetProperties(pCache.Data.GetType())
在此,数据是IdataCache.
答案 0 :(得分:2)
PCache.Data是pCache.Data.GetType()的一个实例,它的类型不能是接口,必须是具体类型。
pCache.Data.GetType()将始终返回实例的类型,如果它是IdataCache,则IdataCache是具体类型