пытаюсь сделать ниже, но, очевидно, недостаточно знаю об отражении.
Пример того, что я пытаюсь сделать, я хочу "разрешить" список JazzDancer в список Dancer(от которого наследуются все типы танцоров).Хочу убедиться, что если DanceStyle здесь - Jazz, в списке танцоров будет только тип JazzDancer.надеюсь, что это имеет смысл.
Проблема в том, что кажется, что вы не можете разыграть Список в Список.
Возможно ли это?
List<Dancer> dancers = TypeNameResolver<Dancer>.ResolveList(DanceStyle, typeof(Dancer));
public static List<T> ResolveList(IDanceStyle style, Type toType)
{
Type list = typeof (List<>);
Type[] pars = { TypeNameResolver<T>.Resolve(style,toType).GetType()};
List<T> result = (List<T>)Activator.CreateInstance(list.MakeGenericType(pars));
return result;
}
public static T Resolve(IDanceStyle style, Type toType)
{
Assembly a = Assembly.GetExecutingAssembly();
var typeName = style.GetType().Name + toType.Name;
var toTypeNameSpace = toType.Namespace;
return (T)a.CreateInstance(toTypeNameSpace + "." + typeName);
}