Dov*_*Dov 2 c# reflection static types properties
我有一个我正在编写的方法,它使用反射来列出类的静态属性,但我只对那些特定类型的方法感兴趣(在我的例子中,属性必须是从DataTable派生的类型).我想要的是类似下面的if()语句(目前总是返回true):
PropertyInfo[] properties = ( typeof(MyType) ).GetProperties( BindingFlags.Public
| BindingFlags.Static );
foreach( PropertyInfo propertyInfo in properties ) {
if( !( propertyInfo.PropertyType is DataTable ) )
continue;
//business code here
}
Run Code Online (Sandbox Code Playgroud)
谢谢,我很难过.
您需要使用Type.IsAssignableFrom而不是"is"运算符.
这将是:
if( !( DataTable.IsAssignableFrom(propertyInfo.PropertyType) )
Run Code Online (Sandbox Code Playgroud)
DataTable.IsAssignableFrom(propertyInfo.PropertyType) 如果PropertyType是DataTable或DataTable的子类,则为true.
| 归档时间: |
|
| 查看次数: |
234 次 |
| 最近记录: |