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

被折叠的 条评论
为什么被折叠?



