我们在MSTest项目中引用了一个项目,其中包括枚举。我们在成员/字段(例如GreetHeyHo)的一个测试类(例如IUseEnumsAsField)中使用这些枚举。 MSTest项目有几个类。如果我们以反射方式调用此MSTest项目,则只会得到不使用枚举作为成员的类。通过反射找到的类也使用引用项目中的枚举,但不作为成员,而仅用于测试方法本身。带有枚举成员的类IUseEnumsAsField我得到了一个例外,就是找不到包含枚举的项目dll。
我一起玩耍,发现如果我使用属性而不是成员,则可以通过反射找到该类。
这是示例代码:
<?php
echo Html::a('<span class="glyphicon glyphicon-floppy-disk"></span> Save', ['simpan'], [
'class' => 'btn btn-primary',
'data' => [
'method' => 'post'
]
]);
?>
其他项目,请使用反射:
[TestClass]
public class IUseEnumsAsField
{
public GreetingsEnum GreetHeyHo = GreetingsEnum.HeyHo;
public GreetingsEnum GreetHey = GreetingsEnum.Hey;
public MyEnum ThisShirt = MyEnum.HasPinkShirts;
//comment fields and uncomment property, this class is found
//public GreetingsEnum GreetHeyHoProp
//{
// get { return GreetingsEnum.HeyHo; }
//}
}
有人知道吗,为什么我不能将引用项目中的枚举用作具有反射的成员?
谢谢,丹妮
编辑
在我的环境中,财产是指获取者/设置者,成员是例如公共/私有字段。在我的示例中,GreetHeyHoProp是一个属性(有效),而GreetHeyHo是一个公共字段(这是问题所在)。
编辑
我将一个示例项目推送到github: https://github.com/dani-mon/DidntFindMyClassAndMethods