Создание свойств производного класса указанного типа c из базового класса - PullRequest
0 голосов
/ 19 марта 2020

Создание свойств производного класса указанного типа из базового класса

Образец:

public class TBaseModel{

    public TBaseModel(){
        //here i want to list all dervied class peoperties of type DbSet and Instantiate it here.
    }

}

public class TDataModel : TBaseModel
{
    public DbSet cars {set ; get ;}

    public TDataModel (){
        cars  = new DbSet(); // i don't want to do this
    }

}

1 Ответ

0 голосов
/ 21 марта 2020

решение равно l oop для всех текущих свойств класса и создает новый экземпляр на основе типа класса свойства и устанавливает новый экземпляр обратно в текущий класс.

 public class TBaseClass
    {

    public TBaseClass()
    {

        Type thisClass = this.GetType();
        PropertyInfo[] info = thisClass.GetProperties();
        foreach (var prop in info)
        {
            if (typeof(TDataModel).IsAssignableFrom(prop.PropertyType))
            {
                object newModel = Activator.CreateInstance(prop.PropertyType);
                prop.SetValue(this, newModel, null);
            }


        }

    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...