Я определил следующие базовые и производные классы с соответствующими интерфейсами в соответствии с ними:
public class SomeModule : ModBase, ISomeModule
{
public Parameter2<int> Param3 { get; set; } = new Parameter2<int>();
}
public interface ISomeModule : IModBase
{
Parameter2<int> Param3 { get; set; }
}
public class ModBase : IModBase
{
public string Name { get; set; }
public Parameter2<int> Param1 { get; set; } = new Parameter2<int>();
public Parameter2<bool> Param2 { get; set; } = new Parameter2<bool>();
public Parameter2<bool> HiddenParam { get; set; } = new Parameter2<bool>();
}
public interface IModBase
{
string Name { get; set; }
Parameter2<int> Param1 { get; set; }
Parameter2<bool> Param2 { get; set; }
Parameter2<bool> HiddenParam { get; set; }
}
При создании экземпляра объекта SomeModule базовые свойства и производные свойства разобщаются согласно следующей диаграмме (ie Мне нужно смотреть изнутри базового объекта, чтобы увидеть Param3):
Есть ли способ сделать все свойства видимыми из производного объекта ( без необходимости расширения базового объекта, чтобы увидеть Param3) в соответствии с:
Edit
В соответствии с предложением Алекса - Тин Ле, можно добавить строку отладки, чтобы перечислить все свойства в одном и том же месте. Не совсем то, что было после, но неплохо обойтись.
Вот пример использования GetProperties () для перечисления всех свойств производного класса в одном и том же месте:
public class SomeModule : ModBase, ISomeModule
{
public List<string> DebugString => base.GetType().GetProperties().Select(p => p.Name).ToList();
public Parameter2<int> Param3 { get; set; } = new Parameter2<int>();
}