[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