public object DisplayFor(object value)
{
var length = Length(parameters) + 1;
var ctorParameters = new object[length];
Array.Copy(parameters, 0, ctorParameters, 1, length - 1);
var types = new Type[length];
for(var i = 1; i < length; ++i)
types[i] = ctorParameters[i].GetType();
types[0] = value.GetType();
ctorParameters[0] = value;
return displayClass.GetConstructor(types).Invoke(ctorParameters);
}