我有一个“通用”项目的解决方案。此“通用”项目由解决方案中的其他项目使用。
在这个“Common”项目中,我有一个“Utilities”文件夹,其中包含几个不同的实用程序类,例如“CsvUtilities.cs”和“JsonUtilities.cs”。假设我可以有很多这样的类,并且这些类中的所有方法都是纯函数。基于此,将这些类和方法设为静态是有意义的。然后从其他项目中,我可以导入公共项目并执行以下操作:
CsvUtilities.StaticCsvMethod();
JsonUtilities.StaticJsonMethod();
这行得通,我认为这是相对正常的。
现在复杂的是我想创建一个层次结构来访问静态实用程序方法。我希望能够输入“实用程序”。在 IDE 中并让智能感知显示所有现有的实用程序类,然后是该实用程序类中的所有方法。
所以我想要的代码如下所示:
Utilities.Csv.StaticCsvMethod();
Utilities.Json.StaticJsonMethod();
我通过执行以下操作实现了这个想法:
public static class Utilities
{
public static CsvUtilities Csv { get; } = new CsvUtilities();
public static JsonUtilities Json { get; } = new JsonUtilities();
}
但是,这种解决方案存在一个大问题。为此,各种实用程序类及其方法必须不再是静态的,这对于实用程序类/方法来说很尴尬。
我找不到其他人做这样的事情的例子。我使用这个“实用程序”的最合理的方式是什么。结构,同时还保持实用程序类/方法静态?