[mono-android] Convert .net type to Java.Lang.Object - how?

johnHolmes francesco.colombo at gmail.com
Tue Jun 5 08:59:35 UTC 2012


Hi,

this is how I handle conversions .NET <=> Java. Don't know if it's the best
pratice or it's elegant, anyway it works and it's easy to use :)

I'm using extension methods to extend Java.Lang.Object and .NET objects 

namespace PutYour.NameSpace.Here
{
	using System;
	
	using Java.Lang;
	
	internal class JavaHolder : Java.Lang.Object
	{
		public readonly object Instance;
		
		public JavaHolder(object instance)
		{
			this.Instance = instance;
		}
	}	
	
	public static class ObjectExtension
	{
		public static TObject ToNetObject<TObject>(this Java.Lang.Object value)
		{
			if(value == null)
				return default(TObject);
			
			if(!(value is JavaHolder))
				throw new InvalidOperationException("Unable to convert to .NET object.
Only Java.Lang.Object created with .ToJavaObject() can be converted.");
			
			return 
				(TObject)((JavaHolder)value).Instance;
		}
		
		public static Java.Lang.Object ToJavaObject<TObject>(this TObject value)
		{
			if(value == null)
				return null;
			
			var holder = new JavaHolder(value);					

			return 
				(Java.Lang.Object)holder;
		}
	}
}

--
View this message in context: http://mono-for-android.1047100.n5.nabble.com/Convert-net-type-to-Java-Lang-Object-how-tp5710021p5710144.html
Sent from the Mono for Android mailing list archive at Nabble.com.


More information about the Monodroid mailing list