public override string ToString() { return(Marshaller.Utf8PtrToString(g_variant_type_peek_string(Handle))); }
public static string PtrToString(IntPtr ptr) { return(Marshaller.Utf8PtrToString(ptr)); }
public void Append(string item) { this.Append(Marshaller.StringToPtrGStrdup(item)); }
public override string ToString() { return(Marshaller.Utf8PtrToString(g_type_name(val))); }
void Callback(IntPtr nmessage) { string message = Marshaller.Utf8PtrToString(nmessage); managed(message); }
public static Type LookupType(IntPtr typeid) { lock (types) { if (types.ContainsKey(typeid)) { return(types[typeid]); } } string native_name = Marshaller.Utf8PtrToString(g_type_name(typeid)); if (ResolveType != null) { GLib.GType gt = new GLib.GType(typeid); Delegate[] invocation_list = ResolveType.GetInvocationList(); foreach (Delegate d in invocation_list) { TypeResolutionHandler handler = (TypeResolutionHandler)d; System.Type tmp = handler(gt, native_name); if (tmp != null) { Register(gt, tmp); return(tmp); } } } string type_name = GetQualifiedName(native_name); if (type_name == null) { return(null); } Type result = null; Assembly[] assemblies = (Assembly[])AppDomain.CurrentDomain.GetAssemblies().Clone(); foreach (Assembly asm in assemblies) { result = asm.GetType(type_name); if (result != null) { break; } } if (result == null) { // Because of lazy loading of references, it's possible the type's assembly // needs to be loaded. We will look for it by name in the references of // the currently loaded assemblies. Hopefully a recursive traversal is // not needed. We avoid one for now because of problems experienced // in a patch from bug #400595, and a desire to keep memory usage low // by avoiding a complete loading of all dependent assemblies. string ns = type_name.Substring(0, type_name.LastIndexOf('.')); string asm_name = ns.ToLower().Replace('.', '-') + "-sharp"; foreach (Assembly asm in assemblies) { foreach (AssemblyName ref_name in asm.GetReferencedAssemblies()) { if (ref_name.Name != asm_name) { continue; } try { string asm_dir = Path.GetDirectoryName(asm.Location); Assembly ref_asm; if (File.Exists(Path.Combine(asm_dir, ref_name.Name + ".dll"))) { ref_asm = Assembly.LoadFrom(Path.Combine(asm_dir, ref_name.Name + ".dll")); } else { ref_asm = Assembly.Load(ref_name); } result = ref_asm.GetType(type_name); if (result != null) { break; } } catch (Exception) { /* Failure to load a referenced assembly is not an error */ } } if (result != null) { break; } } } Register(new GType(typeid), result); return(result); }
static public string FormatSizeForDisplay(long size) { return(Marshaller.PtrToStringGFree(g_format_size_for_display(size))); }
public string Print(bool type_annotate) { IntPtr str = g_variant_print(handle, type_annotate); return(Marshaller.PtrToStringGFree(str)); }
public Variant(string[] strv) { IntPtr[] native = Marshaller.StringArrayToNullTermPointer(strv); handle = g_variant_ref_sink(g_variant_new_strv(native, new IntPtr((long)strv.Length))); Marshaller.Free(native); }
static public string SizeForDisplay(long size) { string result = Marshaller.PtrToStringGFree(g_format_size_for_display(size)); return(result); }