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."); } TObject returnValue; try { returnValue = (TObject)((JavaHolder)value).Instance; } finally { value.Dispose(); } return(returnValue); }