如何在F#类型提供程序中生成枚举

如何在F#类型提供程序中生成枚举,f#,type-providers,f#-3.0,F#,Type Providers,F# 3.0,似乎表明这是可能的,但ProvidedTypes中没有ProvidedEnum。fs使用ProvidedTypeDefinition,只使用真实的枚举类型作为基类型。此功能没有经过很好的测试,因此如果遇到问题,请询问后续问题。我不确定是否理解您的意思。假设我想生成一个包含三个值a、B和C的新枚举。如果基类型还不存在,我应该传递给它什么枚举?我是否应该在类型提供程序中创建具有多个arity的伪枚举,如Func和Action?@ovatsus-您需要一个可以重新调整用途的真实枚举(可能是一个伪枚举,

似乎表明这是可能的,但ProvidedTypes中没有ProvidedEnum。fs

使用
ProvidedTypeDefinition
,只使用真实的枚举类型作为基类型。此功能没有经过很好的测试,因此如果遇到问题,请询问后续问题。

我不确定是否理解您的意思。假设我想生成一个包含三个值a、B和C的新枚举。如果基类型还不存在,我应该传递给它什么枚举?我是否应该在类型提供程序中创建具有多个arity的伪枚举,如Func和Action?@ovatsus-您需要一个可以重新调整用途的真实枚举(可能是一个伪枚举,您可以对所有提供的枚举重复使用;不幸的是,所有F#enum必须至少有一个值,而不是C#)。老实说,我根本没想到提供的枚举会起作用,所以这个限制并不让我太惊讶;报告时生成的类型是通过反射生成的枚举(typeof.IsEnum=true)。该类型实际上不作为枚举。例如:let x=MySyntheticEnum.SomeLabel中的“x”被推断为int,而不是MySyntheticEnum类型的东西。这种类型还有其他奇怪的特征。。。