.net6 里有没有什么办法能自动调用静态构造函数吗?

2022-05-12 22:37:11 +08:00
 bthulu

在写一个通用调度策略, 在静态构造方法里将这个策略类注册到注册器. 我知道可以在注册器实例中主动添加这个策略类, 但是这样如果我新加一个策略类, 岂不是还得去改这个注册器类吗? 所以我在想能不能实现 java 那样的, 程序运行时自动调用类的静态构造方法? java 里我可以指定个包名, 然后找到指定驱动包下的所有类, 全部 class.forname 一下就好了. 但是我 google 到的都是说 C#的静态构造方法只有在创建实例或者引用类的静态属性时才会被调用. 问题是策略类要跟策略配置项配合用的, 要在配置项用到的时候再创建, 同时这个类也没有任何静态属性. 难搞哦

1400 次点击
所在节点    C#
3 条回复
yicong135
2022-05-13 09:02:09 +08:00
C# Lazy 是不是你想要的
frisktale
2022-05-13 09:58:24 +08:00
forgottencoast
2022-05-13 19:51:01 +08:00
"java 里我可以指定个包名, 然后找到指定驱动包下的所有类, 全部 class.forname 一下就好了."
.Net 6 也可以这样做啊,而且大部分都是这样实现的,真正实现的时候都会做一个过滤,比如实现了特定接口的,或者标记了特定 Attribute 的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/852520

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX