Ich versuche, meine graphQL-Mutation generisch zu machen. Aber zur Laufzeit bekomme ich einen Fehler.
Der Fehler lautet: Objektverweis nicht auf eine Instanz eines Objekts festgelegt.NULL-Referenz bei der Verwendung von GetElementType() erhalten
public class ApplicationMutation<T> : ObjectGraphType where T: BaseModel
{
public ApplicationMutation()
{
this.Name = "RootMutation";
var nameofT = typeof(T).GetElementType().Name;
this.Field<AddPayloadType<T>>(
"add" + nameofT,
arguments: new InputQueryArguments<AddInputType<T>>(),
resolve: context =>
{
var input = context.GetArgument<AddInput<T>>("input");
var result = Activator.CreateInstance<T>();
{
Name = "1337 p40c355I73m";
};
return new AddPayload<T>(input, result);
});
this.Field<UpdatePayloadType<T>>(
"update" + nameofT,
arguments: new InputQueryArguments<UpdateInputType<T>>(),
resolve: context =>
{
var input = context.GetArgument<UpdateInput<T>>("input");
var result = Activator.CreateInstance<T>();
{
Name = "rul0r item";
};
return new UpdatePayload<T>(input, result);
});
this.Field<DeletePayloadType<T>>(
"delete" + nameofT,
arguments: new InputQueryArguments<DeleteInputType<T>>(),
resolve: context =>
{
var input = context.GetArgument<DeleteInput<T>>("input");
var result = true;
return new DeletePayload<T>(input, result);
});
}
}
Die Ausnahme wird von der folgenden Zeile geworfen: var nameofT = typeof(T).GetElementType().Name;
Wenn mehr Informationen benötigt werden, nur danach fragen.
Werfen Sie einen Blick auf diese qu estion: http://stackoverflow.com/q/7072088/1514875 - Es scheint, dass Sie nur 'GetElementType()' für Arrays verwenden sollten. – TryingToImprove
Verwenden Sie GetGenericArguments() anstelle von GetElementType(). – MMK