Tag: 静态类

如何制作可插入的静态类

我知道如何在c#中制作可插拔的东西。 定义一个接口, Activator.CreateInstance()等。或者我可以有一个显式创建插件类实例的代码路径。 很多种方法。 但是,如果我想要可插拔的服务是静态的(我知道我可以重构,所以它不是,但这不是问题的重点) 具体例子。 我有一个提供磁盘I / O抽象的类(读取文件,列表目录,….)。 现在我想要这种抽象的不同实现,它可以提供来自真实FS,数据库的文件。 基于Olivier Jacot-Descombes的回复,我将有一个像这样的FileSystem类(这是真的) public static class FileSystem { static IFSImplemenation s_imple; static FileSystem() { if() // converted to singleton instead of static s_imple = new OldFileSystem() else s_imple = new DbFileSystem(); } public static byte[] ReadFile(string path) { return s_imple.ReadFile(path); } … } 重申 – 我有一大堆代码,我不想改变,所以保持调用签名相同很重要 […]