Yo (ab) uso Autofixture para generar ejemplos de documentación para una API web. Los mensajes (comandos y consultas) que Autofixture creará para mí se serializan en JSON y pasan a formar parte de la documentación. Esto funciona realmente muy bien, y se necesitan unas pocas líneas de código, en comparación con los cientos de líneas de código feo que genera la plantilla VS para Web API en su área / HelpPage (puaj).
Actualmente utilizo el siguiente código para lograr esto:
`` c #
privado estático de solo lectura MethodInfo CreateMethodInfo =
GetMethod (() => SpecimenFactory.Create
.GetGenericMethodDefinition ();
objeto estático público Crear (tipo de tipo)
{
var fixture = new Fixture ();
int índice = 1;
fixture.Register (() => "texto de muestra" + índice ++);
return CreateMethodInfo.MakeGenericMethod(type).Invoke(null, new object[] { fixture });
}
MethodInfo estático privado GetMethod (Expression
((MethodCallExpression) methodCall.Body) .Method;
''
Como no conozco el mensaje exacto en el momento de la compilación, no puedo llamar al método Fixture.Create<T>()
Autofixture. Como muestra el código anterior, la forma en que resolví esto actualmente es invocando este método genérico Create<T>
usando la reflexión.
¿Existe una forma más sencilla de lograr mi objetivo y, de no ser así, se podría agregar Create(Type)
método
¿Funcionaría esta solución?
c#
var specimen = new SpecimenContext(fixture).Resolve(type);
¡Frio! ¡Eso hace el truco! Gracias.
Comentario más útil
¿Funcionaría esta solución?
c# var specimen = new SpecimenContext(fixture).Resolve(type);