У меня есть решение с «общим» проектом. Этот «общий» проект используется другими проектами в решении.
В этом «общем» проекте у меня есть папка «Утилиты» с несколькими различными классами утилит, например, «CsvUtilities.cs» и « JsonUtilities.cs». Предположим, что у меня может быть много таких классов, и что все методы в этих классах являются чистыми функциями. Исходя из этого, было бы разумно, чтобы эти классы и методы имели статус c. Затем из других проектов я могу импортировать общий проект и делать такие вещи:
CsvUtilities.StaticCsvMethod();
JsonUtilities.StaticJsonMethod();
Это работает, и я думаю, что это относительно нормально.
Теперь сложность заключается в том, что я хочу создать иерархическая структура для доступа к утилитам stati c. Я хочу быть в состоянии напечатать "Утилиты". в IDE и intellisense покажите все существующие служебные классы, за которыми следуют все методы в этом служебном классе.
Итак, код, который я хочу, выглядел бы так:
Utilities.Csv.StaticCsvMethod();
Utilities.Json.StaticJsonMethod();
Я реализовал это Идея заключается в следующем:
public static class Utilities
{
public static CsvUtilities Csv { get; } = new CsvUtilities();
public static JsonUtilities Json { get; } = new JsonUtilities();
}
Тем не менее, есть большая проблема с этим решением. Чтобы это работало, различные служебные классы и их методы больше не должны быть stati c, что неудобно для служебных классов / методов.
Мне не удалось найти пример того, как кто-то делает что-то вроде это. Какой самый разумный способ для меня использовать эту «Утилиту». структура, сохраняя при этом служебные классы / методы stati c?