fsharp 不支持 EventSource

本文探讨了使用FSharp实现SemanticLoggingBlock时遇到的问题。由于FSharp不支持内嵌类功能,导致无法直接使用EventSourceAttribute特性。作者尝试寻找替代方案,但最终未能找到可行的方法。文中还提到了考虑使用C#的partial类功能作为解决方案之一。
    在用fsharp探索Semantic Logging Block的过程中,竟发现这是一个不可能完成的任务。首先挡在面前的是EventSourceAttribute需要读取内嵌类来插入必须的Keywords到内部的字典列表中;而fsharp不支持内嵌类的功能,据说是为了避免递归定义可能造成的语义混淆。再有想到有没有什么接口可以手工添加入EventKeywords值呢?找了半天一无所获,读取内嵌类是写死的。最后想到了csharp支持的partial类功能,把工程一分为二,虽然麻烦些是不是也能用呢,非常遗憾,这个关键字并不是dotnet库支持的,仅仅只是csharp编译器造的一个语法糖。既然不能跨语言那自然没用了。全面的使用fsharp看来是没戏了。看来两种语言之间也不是无缝衔接。特此记录。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值