Я работаю над реализацией шаблона фабрики для нескольких (примерно 30) классов, которые наследуются от одного и того же абстрактного класса (некоторые имеют другой абстрактный класс между ними).
У меня есть около 50 различных методов «Create» для написания, и утомительно пытаться отслеживать, для каких свойств я написал определение для каждого из этих методов Create.
Существует ли инструмент или плагин для VS2017, который будет выводить простой список всех доступных свойств (и их типы будут бонусом, а то, что я могу экспортировать в электронную таблицу, еще лучше), включая те, которые объявлены в производном классе , а это родительский класс, а какие-нибудь дедушка + классы? Таким образом, я могу «отметить» те, которые я определил при написании каждого из этих методов «Создать» в моем классе фабрики?
Очевидно, что эта информация доступна, поскольку intellisense и компилятор "знают" эту же информацию.
Если щелкнуть правой кнопкой мыши имя класса и проверить -> Иерархии, я немного сблизился, но мне кажется, что я не могу получить список ВСЕХ членов / свойств в дереве, только выбранный "уровень" класса / наследования.
Пример (кроме IRL эти классы находятся в отдельных файлах, так что это нелегко сделать вручную):
public abstract class Foo
{
public string Name { get; set; }
public string Color { get; set; }
public int Quantity { get; set; }
}
public class Bar : Foo
{
public double Width { get; set; }
public double Length { get; set; }
public double Depth { get; set; }
}
Я бы хотел затем экспортировать список, который будет выглядеть примерно так:
public string Name
public string Color
public int Quantity
public double Width
public double Length
public double Depth
Таким образом, я могу отмечать каждое свойство при его реализации.
РЕДАКТИРОВАТЬ: я должен упомянуть, что у меня есть лицензия Resharper, поэтому ответ, который использует ее, будет приемлемым в моем случае.
РЕДАКТИРОВАТЬ 2: Еще одна вещь, которую я обнаружил, которая ОЧЕНЬ близка, это окно Class View. Есть возможность показать унаследованных членов и получить мне плоский список. Если бы был способ экспортировать это и как-то показать тип данных для каждого свойства, я был бы готов.
Также я работаю с кодом, который не готов к компиляции, и не буду некоторое время (это весь новый код). Было несколько хороших предложений для кода, который компилируется, но, к сожалению, я не готов их реализовать.