Exemple #1
0
 public override string ToString()
 {
     return(Marshaller.Utf8PtrToString(g_variant_type_peek_string(Handle)));
 }
Exemple #2
0
 public static string PtrToString(IntPtr ptr)
 {
     return(Marshaller.Utf8PtrToString(ptr));
 }
Exemple #3
0
 public void Append(string item)
 {
     this.Append(Marshaller.StringToPtrGStrdup(item));
 }
Exemple #4
0
 public override string ToString()
 {
     return(Marshaller.Utf8PtrToString(g_type_name(val)));
 }
Exemple #5
0
            void Callback(IntPtr nmessage)
            {
                string message = Marshaller.Utf8PtrToString(nmessage);

                managed(message);
            }
Exemple #6
0
        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);
        }
Exemple #7
0
 static public string FormatSizeForDisplay(long size)
 {
     return(Marshaller.PtrToStringGFree(g_format_size_for_display(size)));
 }
Exemple #8
0
        public string Print(bool type_annotate)
        {
            IntPtr str = g_variant_print(handle, type_annotate);

            return(Marshaller.PtrToStringGFree(str));
        }
Exemple #9
0
 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);
        }