I have a first c# assembly exposing a class and an enum

```
namespace TestComLibraryInCSharp
{
    [Guid("A5AE3B4C-7788-4394-A949-98A9F78A8E00")]
    [ComVisible(true)]
    public enum ColorType
    {
        Red = 0,
        Green = 1,
        Blue = 2
    }

    [Guid("EF5D9F9C-DAAB-472E-A418-114F0352F06E")]
    [InterfaceType(ComInterfaceType.InterfaceIsDual)]
    [ComVisible(true)]
    public interface IComClassUsingEnum
    {
        void Select(ColorType color);
    }

    [Guid("5EDE0D14-3A3B-41E7-93BC-40868BC68655")]
    [ClassInterface(ClassInterfaceType.None)]
    [ComVisible(true)]
    public class ComClassUsingEnum : IComClassUsingEnum
    {
        public void Select(ColorType color)
        {
            MessageBox.Show("you have selected " + color.ToString());
        }
    }

}

```

In another assembly I want to test the above interface using dynamic

```
    public void DoTestColor()
    {
        Type type = Type.GetTypeFromProgID("TestComLibraryInCSharp.ComClassUsingEnum");
        dynamic c = Activator.CreateInstance(type);

        c.Select(0); // this works
        c.Select(1); // this throws RuntimeBinderException
    }

```

c.Select(0) works showing the messagebox

c.Select(1) (or any other number except 0) will generate this exception

```
An unhandled exception of type 'Microsoft.CSharp.RuntimeBinder.RuntimeBinderException' occurred in System.Core.dll
Additional information: The best overloaded method match for 'TestComLibraryInCSharp.ComClassUsingEnum.Select(TestComLibraryInCSharp.ColorType)' has some invalid arguments

```

in vba, late bound, everything works as expected

```
Dim c As Object
Set c = CreateObject("TestComLibraryInCSharp.ComClassUsingEnum")
c.Select 1

```

What is the correct way to pass enum values with late bound in c#?