我从 F# 程序集中获取了一堆对象,然后我对这些对象进行了反射(reflection)以发现它们的值(value)。
(准确地说,我有一个使用 fsYacc 的解析器。然后我试图在 TreeView 中显示解析结果。)
可能返回的对象之一是这个可辨别联合:
type op = Eq | Gt | Ge | Lt | Le
这种类型的对象会有一个值,比如 Ge
。
有没有什么方法可以使用反射来确定一个对象是一个可区分的联合,从而采取措施来确定它的值?
最佳答案
确定它是否是一个受歧视的联盟 - http://msdn.microsoft.com/en-us/library/ee353623.aspx - FSharpType.IsUnion
要获取值,请使用 Reflection.UnionCaseInfo
- http://msdn.microsoft.com/en-us/library/ee370473.aspx
关于c# - 反射(reflection)受歧视的工会,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8445562/