反思一个受歧视的联盟

时间:2011-12-09 12:36:48

标签: c# f#

我从F#程序集中获取了一堆对象,然后我将其反思以发现它们的价值。

(确切地说,我有一个使用fsYacc的解析器。然后我尝试在TreeView中显示解析的结果。)

返回的一个可能的对象是这个Discriminated union:

type op = Eq | Gt | Ge | Lt | Le

此类型的对象将具有值,例如Ge

有没有办法使用反射我可以确定一个对象是一个被辨别的联合,因此采取措施来确定它的值?

1 个答案:

答案 0 :(得分:5)

确定它是否是一个不同的联盟 - http://msdn.microsoft.com/en-us/library/ee353623.aspx - FSharpType.IsUnion

要使用Reflection.UnionCaseInfo - http://msdn.microsoft.com/en-us/library/ee370473.aspx

获取价值