Пример #1
0
        public ManagedGenBaseSupport(TypeDefinition t)
        {
            this.t = t;
            var regatt = t.CustomAttributes.FirstOrDefault(a => a.AttributeType.FullNameCorrected() == "Android.Runtime.RegisterAttribute");

            is_acw = regatt != null;
            string jn  = regatt != null ? ((string)regatt.ConstructorArguments [0].Value).Replace('/', '.') : t.FullNameCorrected();
            int    idx = jn.LastIndexOf('.');

            pkg_name  = idx < 0 ? String.Empty : jn.Substring(0, idx);
            java_name = SymbolTable.FilterPrimitiveFullName(t.FullNameCorrected());
            if (java_name == null)
            {
                java_name = idx < 0 ? jn : jn.Substring(idx + 1);
                full_name = t.FullNameCorrected();
            }
            else
            {
                var sym = SymbolTable.Lookup(java_name);
                full_name = sym != null ? sym.FullName : t.FullNameCorrected();
            }
            java_name       = java_name.Replace('$', '.');
            type_parameters = GenericParameterDefinitionList.FromMetadata(t.GenericParameters);

            var obsolete = t.CustomAttributes.FirstOrDefault(ca => ca.AttributeType.FullName == "System.ObsoleteAttribute");

            if (obsolete != null)
            {
                deprecated        = true;
                deprecatedComment = obsolete.HasConstructorArguments
                                        ? obsolete.ConstructorArguments [0].Value.ToString()
                                        : "This class is obsoleted in this android platform";
            }
        }