title: Delegate.DynamicInvoke too slow, how to change call to Invoke?
body: <p>I've read that i should create and reuse delegates to get the value of a property of an object.</p>
  
  <p>I use this code to create the Delegate</p>
  
  <pre><code>    var objParm = Expression.Parameter(property.DeclaringType, "o");
  
      Type delegateType = typeof(Func&lt;,&gt;).MakeGenericType(property.DeclaringType, property.PropertyType);
  
      var lambda = Expression.Lambda(delegateType, Expression.Property(objParm, property.Name), objParm);
  
      return lambda.Compile()
  </code></pre>
  
  <p>Now i only find the way to use the delegate in the call of "DynamicInvoke".</p>
  
  <p>Now i want to change the call to "invoke" cause of performance reasons.</p>
  
  <p>I tried</p>
  
  <pre><code>Delegate.Method.Invoke(invokedObject, null);
  </code></pre>
  
  <p>But after the call i get the exception</p>
  
  <pre><code>MethodInfo must be a RuntimeMethodInfo.
  </code></pre>
  
  <p>I have an cache class for each property where i can store the dynamically created delegate.</p>
  
  <p>What should i do so i am able to use "normal" Invokes?</p>
  
  <p>Thanks a lot.</p>