Q:

can I use invoke to abstract class method

As below code i just want to know can I use Invoke() for abstract class                                   
public abstract class genericDefine
{
    public void Foo<T>(T item)
    {
        Console.WriteLine(typeof(T).Name);
    }
}

var bar = typeof(Bar);
var fooMethod = typeof(genericDefine).GetMethod("Foo");
var fooOfBarMethod = fooMethod.MakeGenericMethod(new[] { bar });
fooOfBarMethod.Invoke(new genericDefine(), new object[] { new Bar() });

I also tried for use Derived class object but it wont work for me....!

A:

You either have to make the method static, or pass in an instance to call the method on. You can't call an instance method without actually having an instance (and you can't instantiate an abstract class).
So either this (using an instance):
public class genericDefineInstance : genericDefine
{ }

...
fooOfBarMethod.Invoke(new genericDefineInstance(), new object[] { new Bar() });

Or (using an static method):
public static void Foo<T>(T item)
{
    Console.WriteLine(typeof(T).Name);
}

...
fooOfBarMethod.Invoke(null, new object[] { new Bar() });

A:

In order to invoke the MethodInfo without passing in an instance of the object you need to have that method defined as static. So if your method was defined as such it does work. Otherwise you need to have an subclass instance of the abstract base class.
 public abstract class AbstractClass
 {
     public static void Foo<T>(T item)
     {
         Console.WriteLine(typeof(T).Name + ": " + item);
     }
 }

But then why have the class be abstract?

You either need an instance from a class that inherits the abstract class
Or, you need to make the method static -- which defeats the purpose of abstract classes

Here is the .NET fiddle.

