在写一个通用调度策略, 在静态构造方法里将这个策略类注册到注册器. 我知道可以在注册器实例中主动添加这个策略类, 但是这样如果我新加一个策略类, 岂不是还得去改这个注册器类吗? 所以我在想能不能实现 java 那样的, 程序运行时自动调用类的静态构造方法? java 里我可以指定个包名, 然后找到指定驱动包下的所有类, 全部 class.forname 一下就好了. 但是我 google 到的都是说 C#的静态构造方法只有在创建实例或者引用类的静态属性时才会被调用. 问题是策略类要跟策略配置项配合用的, 要在配置项用到的时候再创建, 同时这个类也没有任何静态属性. 难搞哦
1
yicong135 2022-05-13 09:02:09 +08:00
C# Lazy 是不是你想要的
|
2
frisktale 2022-05-13 09:58:24 +08:00 1
|
3
forgottencoast 2022-05-13 19:51:01 +08:00
"java 里我可以指定个包名, 然后找到指定驱动包下的所有类, 全部 class.forname 一下就好了."
.Net 6 也可以这样做啊,而且大部分都是这样实现的,真正实现的时候都会做一个过滤,比如实现了特定接口的,或者标记了特定 Attribute 的。 |