Оставляю кусочек кода себе на память. Универсальный, но в моем случае требует костылей.
#region Generic
public void CreateLang(TModel langModel, out IEnumerable diff)
{
Type entityType = this.TypesModelEntity[typeof(TModel)]; //вот костыль
var langType = this.TypesEntityLang[entityType]; //и еще один
Type genericClass = typeof(EFLangRepository);
Type constructedClass = genericClass.MakeGenericType(typeof(TModel), entityType, langType);
object repo = Activator.CreateInstance(constructedClass);
diff = new List();
object[] args = new object[] { langModel, diff };
MethodInfo magicMethod = constructedClass.GetMethod("CreateLang");
object magicValue = magicMethod.Invoke(repo, args);
diff = args[1] as List;
}
#endregion