using System;
using System.Reflection;
using System.Runtime.InteropServices;

class Program
{
	public static int Main ()
	{
		Type t = typeof (Control);
		MethodInfo m = t.GetMethod ("set_Foo");

		if (m.GetParameters ()[0].Name != "value")
			return 1;

		return 0;
	}
}

class Control
{
	public virtual int Foo
	{
		[param: MarshalAs (UnmanagedType.CustomMarshaler, MarshalTypeRef = typeof (int))]
		set
		{
		}
	}
}