2016-11-24 3 views
0

私は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が配列またはポインタでない、または参照によって渡されていない、またはジェネリック型を表す場合は

+1

ためnullが返されますと、このQUを見てみましょうエスティオン:http://stackoverflow.com/q/7072088/1514875 - あなたは 'GetElementType()'配列を使用する必要がありますようです。 – TryingToImprove

+1

GetElementType()の代わりにGetGenericArguments()を使用します。 – MMK

答えて

1

あなただけの配列、ポインタと参照の種類..

nullをGetElementType()を使用することができますまたはジェネリック型またはジェネリックメソッドの定義の型パラメータが https://msdn.microsoft.com/en-us/library/system.type.getelementtype.aspx

それが一般的なの

+0

私は代わりに何を使うことができますか? – venter

+1

@MMKは 'GetGenericArguments()'を示唆していますが、それが動作するかどうかわかりません::) – TryingToImprove

関連する問題