title: How to Return Expression<Func<TClass, TClassField>> when given only FieldInfo and TClass?
body: <p>In runtime I have only <code>TClass</code> and a <code>FieldInfo</code>, and I need to generate a lambda expression that gets an instance of <code>TClass</code> and returns the correlate field. After constructing a <code>MemberExpression</code> I got stuck when trying to wrap the expression to  <code>Expression&lt;Func&lt;TClass, TClassField&gt;&gt;</code>:</p>
  
  <pre><code>var res = Expression.Lambda&lt;Func&lt;TClass, TClassField&gt;&gt;(memberExpression, paramExp);
  return res;
  </code></pre>
  
  <p>Because TClassField is not known during compile time. I need some strongly typed solution (no casting to <code>object</code>) due to 3rd party requirements. Is this even possible in C#?</p>
  
  <p>EDIT I need something like this - </p>
  
  <pre><code>private void User3rdPartyLibrary&lt;TClass&gt;(FieldInfo fi)
  {
      //Goal: call _3rdParty.Method&lt;TClass, TClassField&gt;(expression)
  
      var memberExp = Expression.Field(Expression.Parameter(typeof(TClass)), fi);
      //var lambda = some magic that returns  Expression.Lambda&lt;Func&lt;TClass, TClassField&gt;&gt;
      //      where fi.FieldType == typeof(TClassField).
  
      //_3rdParty.Method(lambda);
  }
  </code></pre>
  
  <p>Signature of the 3rd party method:</p>
  
  <pre><code>public void Method&lt;TClass, TClassMember&gt;(Expression&lt;Func&lt;TClass, TClassMember&gt;&gt; expression);
  </code></pre>