if (cons == null) throw new ArgumentException(ty.Name + " constructor not found.");\r
return (T)cons.Invoke(new object[] { cPtr, false });\r
}\r
+\r
+ /// <summary>\r
+ /// Getting IntPtr from wrapper\r
+ /// </summary>\r
+ /// <typeparam name="T">swig generated class</typeparam>\r
+ /// <param name="obj">instance</param>\r
+ /// <returns>Original pointer</returns>\r
+ public static IntPtr GetPtr<T>(T obj)\r
+ {\r
+ // internal static HandleRef getCPtr(CoreSession obj)\r
+ var ty = typeof(T);\r
+ var bflags = BindingFlags.Static | BindingFlags.NonPublic;\r
+ var getCPtr = ty.GetMethod("getCPtr", bflags, null, new[] { typeof(T) }, null);\r
+\r
+ if (getCPtr != null)\r
+ {\r
+ var handleRef = getCPtr.Invoke(null, new object[] { obj });\r
+\r
+ if (handleRef is HandleRef)\r
+ {\r
+ return ((HandleRef)handleRef).Handle;\r
+ }\r
+ }\r
+\r
+ return IntPtr.Zero;\r
+ }\r
}\r
}\r