【发布时间】:2015-12-16 16:08:38
【问题描述】:
如果我有一个用于此扩展的 propertyInfo 和带有变量的对象,我可以调用扩展方法吗?
我有一个扩展:
public static string GetTitle(this MyEnum myEnum)
{
switch (myEnum)
{
case MyEnum.One:
return "one";
case MyEnum.Two:
return "two";
default:
return "zero";
}
}
和枚举:
public enum MyEnum
{
Zero, One, Two
}
和班级
public class MyClass
{
public string A {get;set;}
public MyEnum B {get;set;}
}
当我得到这个类的 PropertyInfo 时,我需要调用一个扩展。 我尝试这样做
// .....
foreach(var prop in properties){
var value = prop.GetType().IsEnum ? prop.GetTitle() : prop.GetValue(myObj, null).ToString()
}
// .....
但它不起作用。
我有几个不同的枚举和几个不同的扩展。无论类型如何,我都会尝试获取值。
【问题讨论】:
-
请提供它不起作用的详细信息。
-
类型本身不存在扩展方法,它们以不同的方式“粘合”到它。无论哪种方式,
PropertyInfo对象上都不存在扩展方法(或任何特定于类型的方法)。 -
prop是什么类型?我猜这不是MyEnum。
标签: c# .net reflection enums propertyinfo