c# - 反射(reflection)受歧视的工会

标签 c# f#

我从 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/

相关文章:

c# - 无法解决“字符串未被识别为有效的日期时间问题”c#

c# - 使用 MySqlTransaction 回滚

f# - 为什么这个带有成员约束的 F# 代码不能编译?

f# - WebSharper 3.4 与有效的 HelloWorld 示例?

f# - F# 命名约定是否禁止在不同光盘中使用相同的名称。工会类型?

f# - F#中矩阵计算的改进

javascript - Blazor WebAssembly 为特定环境加载不同的脚本

c# - 如何从 C++/C# 调用此 DLL 函数

C# - 复杂变量赋值

c# - 将文件 any\netstandard1.6\FSharp.Core.sigdata 复制到 obj\Release\Package\PackageTmp\any\netstandard1.6\FSharp.Core.sigdata 失败