[Mono-list] MethodInfo.Invoke and ByRef

James Dalton james.dalton at deltadentalva.com
Mon Oct 12 16:15:57 EDT 2009


Mono version 2.4.2.3 Fedora Core 11

Couldn't find any references to this, not sure if it's a known bug or not,
but the code below should print:

methodArgs[0] = 3
test = 3

but instead prints:

methodArgs[0] = 4
test = 3

This works correctly in Microsoft.Net, and if I take out the ? in the method
sig it works in Mono.

using System;

namespace ByRefReflectionTest
{
	public class MainClass
	{
		
		public void ByRefTest(ref long? fred)
		{
			fred = 3;
		}
		
		public static void Main (string[] args)
		{
			long? test = 4;
			
			MainClass m = new MainClass ();
			
			object[] methodArgs = new object[] { test };
			
			m.GetType().GetMethod("ByRefTest").Invoke(m, methodArgs);
			
			Console.WriteLine(string.Format ("methodArgs[0] = {0}", methodArgs[0]));
					
			m.ByRefTest(ref test);
			
			Console.WriteLine(string.Format("test = {0}", test));
			
		}
	}
}

-- 
View this message in context: http://www.nabble.com/MethodInfo.Invoke-and-ByRef-tp25862454p25862454.html
Sent from the Mono - General mailing list archive at Nabble.com.



More information about the Mono-list mailing list