Fast Invoker is small project to create a fast and dynamic invoker to provide abilities to
invoke the methods and access the properties and the fields.
Fast Invoker is very fast and it cash the invoker to provide very fast almost like the static ordinary invoke
Fast Invoker will become useful in many cases like:
- Serialize and deserialize
- Dynamic assembly loading
- and many other situations

using Fast Invoker is easy, To invoke method or property you need a create a new instance of :
- FieldAccessor to access to field dynamically.
- PropertyAccessor to access to property dynamically.
- MethodInvoker to Invoke method dynamically.


How it work:
I Emit/Write IL code at runtime to invoke the method, access the property/field and this make it fast
instead of using .NET Refraction framework. and it's faster than many other Invoker frameworks because
I Emit/Write Generic IL code.


The benchmark:
Invoke Method (1,000,000 Invoke)
Native Static : 0ms
MethodInvoker : 3ms
.NET Reflection : 812ms

Access Property (1,000,000 Read, Write)
Native Static : 20ms
PropertyAccessor : 46ms
.NET Reflection : 1984ms

Access Field (1,000,000 Read, Write)
Native Static : 12ms
FieldAccessor : 15ms
.NET Reflection : 562ms

Haytham El-Fadeel - http://www.HFadeel.com/Blog


Example:
X ss = new X();
FastInvoker.MethodInvoker<X> method = new FastInvoker.MethodInvoker<X>("Method");
method.Invoke(ss, null);

...

class X
{
public string o;

public string oo { get; set; }

public void Method()
{

}
}


Date : 3 fab, 2008
Developed by : Haytham El-Fadeel

Last edited Dec 24, 2008 at 7:53 PM by HFadeel, version 3