我从F#程序集中获取了一堆对象,然后我反思它们以发现它们的价值.
(确切地说,我有一个使用fsYacc的解析器.然后我尝试在TreeView中显示解析的结果.)
返回的可能对象之一是这个被歧视的联合:
type op = Eq | Gt | Ge | Lt | Le
Run Code Online (Sandbox Code Playgroud)
比如说,这种类型的对象将具有一个值Ge.
有没有办法使用反射,我可以确定一个对象是一个被辨别的联合,因此采取措施来确定它的价值?
要确定它是否是一个不同的联盟 - http://msdn.microsoft.com/en-us/library/ee353623.aspx -FSharpType.IsUnion
获取价值Reflection.UnionCaseInfo- http://msdn.microsoft.com/en-us/library/ee370473.aspx