我有以下问题:
在我的类型提供程序中,我需要使用一个返回此泛型类型实例的方法来扩展我之前定义的泛型类型。
我的意思是,假设我们有:
type receiveType<'a> = class
val Next:int
val Type:string
new (state,stateType) =
{Next = state;Type = stateType;}
end
稍后在我的类型提供程序中,我想使用以下函数扩展类型:
[<TypeProvider>]
type ProviderTest() as this= (
inherit TypeProviderForNamespaces()
let ns = "typeProviderTest.Provided"
let asm = Assembly.GetExecutingAssembly()
let makeAType (s:string) =
let typage =
ProvidedTypeDefinition(asm, ns, s, Some typeof<obj>)
typage
type receiveType<'a> with
member this.receive(hey:'a,next:string)=
// generate a type from a string for instance
// "hello" -> type helloType
generateTypeFromString(next)
// let typage = ProvidedTypeDefinition(asm, ns, next, Some typeof<obj>)
new receiveType<nextType>(5,"hello")
我的目标是生成该类型的实例receiveType<TypeHello>
,迭代结构(有限状态机)以获得我可以接收的下一个可能的消息(例如"goodMorning"
),创建关联类型(TypeGoodMorning
),然后生成一个实例receiveType<TypeGoodMorning>
.
谢谢。
None
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)