title: Create method dynamically where return type is known at compiletime
body: <p>given following class:</p>
  
  <pre><code>public class Stock {
     public string Name;
     public double Price;
  }
  </code></pre>
  
  <p>and I have following DataFactory:</p>
  
  <pre><code>public class DataFactory {
     public Stock Stock = new Stock();   
  
     public DataFactory Name(string name) {
       Stock.name = name;
       return this;
     }
  
     public DataFactory Price(double price) {
        Stock.Price = price;
        return this;
     }
  }
  </code></pre>
  
  <p>can following code:</p>
  
  <pre><code>.....
     new DataFactory().Name("ATVI").Price(50)
  ....
  </code></pre>
  
  <p>be written as:</p>
  
  <pre><code>....
     new DataFactory().ATVI().Price(50)
  ....
  </code></pre>
  
  <p>without implementing ATVI() on the factory? 
  This will work if i create the method dynamically beforehand. But is this also possible without knowing what method will be called? So i am looking for some hook at lifetime that notifies me about unknown properties/methods.</p>
  
  <p>And if this works, can Price() at compile time be called with intellisense?</p>
  
  <p>No idea how this can be called so sorry if duplicate threads exist.</p>
  
  <p>Best regards
  Josef</p>