Вы можете. Используйте комбинацию amp-bind / amp-list / amp-mustache с конечной точкой JSON. Конечная точка предоставляет вам контент динамически.
Если вы просто хотите изменить позицию, вы можете добавить классы с помощью amp-bind и что-то вроде
[CLASS]='position ? "newPosition" : "" '
Вы не можете сделать конструкторов универсальными, но можно использовать универсальный статический метод вместо этого:
public static Constructor CreateInstance<T>(int blah, IGenericType<T> instance)
и затем сделайте то, к чему Вы нуждаетесь после конструктора при необходимости. Другая альтернатива в некоторых случаях могла бы быть должна представить неуниверсальный интерфейс, который расширяет универсальный интерфейс.
Править: Согласно комментариям...
Если Вы хотите сохранить аргумент в недавно созданный объект, и Вы хотите сделать так способом со строгим контролем типов, то тип должен быть универсальным также.
В той точке уходит проблема конструктора, но можно хотеть сохранить статический общий метод так или иначе в неуниверсальном типе: таким образом, можно использовать в своих интересах вывод типа:
public static class Foo
{
public static Foo<T> CreateInstance<T>(IGenericType<T> instance)
{
return new Foo<T>(instance);
}
}
public class Foo<T>
{
public Foo(IGenericType<T> instance)
{
// Whatever
}
}
...
IGenericType<string> x = new GenericType<string>();
Foo<string> noInference = new Foo<string>(x);
Foo<string> withInference = Foo.CreateInstance(x);