Какой тип вас интересует? Тип возвращаемого значения метода / свойства / события и т. Д.
Если это так, я не думаю, что в MemberInfo
есть что-то, что позволяло бы вам непосредственно это делать - вам нужно будет использовать и использовать MethodInfo.ReturnType
, PropertyInfo.PropertyType
, FieldInfo.FieldType
, EventInfo.EventHandlerType
и любые другие я забыл. (Помните, что сами типы могут быть членами. Не знаете, что вы хотите с ними делать!)
РЕДАКТИРОВАТЬ: Если вас интересует, представляет ли определенный тип MyType или какой-либо подкласс, используйте Type.IsAssignableFrom :
if (typeof(MyType).IsAssignableFrom(type))
РЕДАКТИРОВАТЬ: Теперь, когда мы знаем, что вам нужны свойства, все просто - используйте GetProperties вместо GetMembers. Мне нравится делать отражения с LINQ:
var query = from type in assembly.GetTypes()
from property in type.GetProperties()
where typeof(MyType).IsAssignableFrom(property.PropertyType)
select new { Type=type, Property=property };
foreach (var entry in query)
{
Console.WriteLine(entry);
}
Если вы не фанат LINQ:
foreach (Type t in a.GetTypes())
foreach (PropertyInfo pi in t.GetProperties())
if (typeof(MyType).IsAssignableFrom(pi.PropertyType))
Console.WriteLine("Found a property that is MyType");
Обратите внимание, что вы можете указать флаги привязки для получения закрытых свойств и т. Д.