I have a method that takes a Generic T class
public void CreateTables<T>()
{
string name = typeof(T).Name;
var fields = typeof(T).GetProperties().Select(t => new { key =
t.Name.ToLower(CultureInfo.InvariantCulture), value =
SqLiteUtility.GetSQLiteTypeString(t.PropertyType) })
.ToDictionary(t => t.key, t =>
t.value);
CreateTable(name, fields);
}
and
public void PushData<T>() where T : EntityData
{
var data = _context.Set<T>().Where(p => p.Deleted == false).ToList();
}
I have more than 50 types for which this method needs to be called. Like this
CreateTables<Class1>();
PushData<Class1>();
Although I can do it, but I prefer to create, perhaps, an array of types and use it for a loop to call this method
Something like that
Type[] types=new Types[]{typeof(Class1),typeof(Class2)}
foreach(var type in types)
{
CreateTables<type>(); - - this doesnt work as "type" is a variable
used as a type
}
Is there any way around this? which can also save me a lot of code and refactoring?
EDIT1:
Of the answers, there really can be parameters such as CreateTables (Type T), however, is there an opportunity for the second method above?
In the second, it is important to note that T is referred to as EntityData, since the code in this method depends on it.
source
share