私はgraphQLの突然変異を一般化しようとしています。しかし、実行時に私はエラーが発生します。
エラー:オブジェクト参照がオブジェクトのインスタンスに設定されていません。GetElementType()を使用しているときにnull参照を取得する
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);
});
}
}
例外は、次の行からスローされます。より多くの情報が必要な場合は、ちょうどそれを求める var nameofT = typeof(T).GetElementType().Name;
。現在のTypeが配列またはポインタでない、または参照によって渡されていない、またはジェネリック型を表す場合は
ため
null
が返されますと、このQUを見てみましょうエスティオン:http://stackoverflow.com/q/7072088/1514875 - あなたは 'GetElementType()'配列を使用する必要がありますようです。 – TryingToImproveGetElementType()の代わりにGetGenericArguments()を使用します。 – MMK