title: Does mono 2.8 support 'dynamic' keyword?
body: <p>I tested IronPython on mono 2.8 with the code in the book <a href="http://www.wrox.com/WileyCDA/WroxTitle/Professional-IronPython.productCd-0470548592,descCd-DOWNLOAD.html" rel="nofollow">Professional IronPython</a> p.315 listing 15-3.</p>
  
  <pre><code>using System;
  using IronPython.Hosting;
  using IronPython.Runtime;
  using Microsoft.Scripting.Hosting;
  
  namespace Method2
  {
      class Program
      {
          static void Main(string[] args)
          {
              // Obtain the runtime.
              var IPY = Python.CreateRuntime();
  
              // Create a dynamic object containing the script.
              dynamic TestPy = IPY.UseFile("TestClass.py");
  
              // Execute the __test__() method.
              TestPy.__test__();
          }
      }
  }
  </code></pre>
  
  <p>I see it's compiled OK, and run without a problem on Windows 7, whereas the mono 2.8 gives me the following error message.</p>
  
  <pre>
  Unhandled Exception: Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 
  `Microsoft.Scripting.Hosting.ScriptScope' does not contain a definition for `__test__'
  at (wrapper dynamic-method) object.CallSite.Target (System.Runtime.CompilerServices.Closure,System.Runtime.CompilerServices.CallSite,object) 
  at System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid1
  (System.Runtime.CompilerServices.CallSite,object) 
  at Method2.Program.Main (string[]) 
  </pre>
  
  <p>I thought Mono 2.8 supports C# 4.0 which has the dynamic keyword, but I see that the 'dynamic' keyword is not fully supported with mono.</p>
  
  <p>Is this a bug of Mono 2.8?</p>
  
  <h2>ADDED</h2>
  
  <p>This is the python script.</p>
  
  <pre><code># The class you want to access externally.
  class DoCalculations():
  
      # A method within the class that adds two numbers.
      def DoAdd(self, First, Second):
  
          # Provide a result.
          return First + Second
  
  # A test suite in IronPython.
  def __test__():
  
      # Create the object.
      MyCalc = DoCalculations()
  
      # Perform the test.
      print MyCalc.DoAdd(5, 10)
  
      # Pause after the test session.
      raw_input('\nPress any key to continue...')
  </code></pre>
  
  <p>This is the command that I used</p>
  
  <pre><code>dmcs Program.cs /r:System.Core /r:IronPython.dll /r:IronPython.Modules.dll /r:Microsoft.Dynamic.dll /r:Microsoft.Scripting.dll /r:Microsoft.CSharp.dll
  </code></pre>
  
  <p>It compiles well, but it still breaks when I run the execution binary. Do I need to have all the dlls in the same directory where the execution binary locates?</p>