反思一个受歧视的联盟

Mon*_*ong 1 c# f#

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

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

返回的可能对象之一是这个被歧视的联合:

type op = Eq | Gt | Ge | Lt | Le
Run Code Online (Sandbox Code Playgroud)

比如说,这种类型的对象将具有一个值Ge.

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

Joh*_*mer 5

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

获取价值Reflection.UnionCaseInfo- http://msdn.microsoft.com/en-us/library/ee370473.aspx