예제 #1
0
    public static void GetTypes()
    {
        string             sAll  = "";
        List <XMLTypeInfo> aList = new List <XMLTypeInfo>();

        foreach (var item in m_ExportClass)
        {
            XMLTypeInfo otypeinfo = new XMLTypeInfo(item);
            otypeinfo.stype         = item.type.FullName.Replace(".", "::");
            otypeinfo.sNameScpeace  = item.type.Assembly.GetName().Name;
            otypeinfo.sBase         = item.type.BaseType.FullName.Replace(".", "::");
            otypeinfo.bIsRefType    = (!item.type.IsValueType).ToString().ToLower();
            otypeinfo.IsCustomized  = true.ToString().ToLower();
            otypeinfo.IsImplemented = true.ToString().ToLower();
            otypeinfo.sDisplayName  = item.type.Name;
            otypeinfo.sDesc         = item.type.Name;
            aList.Add(otypeinfo);
        }

        foreach (var otypeinfo in aList)
        {
            ExportInfo oExportinfo = otypeinfo.exportinfo;
            foreach (var propertyname in oExportinfo.propertynamelist)
            {
                XMLMemberInfo oinfo    = new XMLMemberInfo();
                var           property = oExportinfo.type.GetProperty(propertyname);
                oinfo.Name         = property.Name;
                oinfo.DisplayName  = property.Name;
                oinfo.Desc         = property.Name;
                oinfo.Type         = GetMemberTypeName(property.PropertyType);
                oinfo.TypeFullName = GetMemberFullTypeName(property.PropertyType);
                oinfo.Class        = otypeinfo.stype;
                oinfo.Public       = property.CanRead.ToString().ToLower();
                otypeinfo.AddMemberInfo(oinfo);
            }

            foreach (var propertyname in oExportinfo.fieldnamelist)
            {
                XMLMemberInfo oinfo    = new XMLMemberInfo();
                var           property = oExportinfo.type.GetField(propertyname);
                oinfo.Name         = property.Name;
                oinfo.DisplayName  = property.Name;
                oinfo.Desc         = property.Name;
                oinfo.Type         = GetMemberTypeName(property.FieldType);
                oinfo.TypeFullName = GetMemberFullTypeName(property.FieldType);
                oinfo.Class        = otypeinfo.stype;
                oinfo.Public       = property.IsPublic.ToString().ToLower();
                otypeinfo.AddMemberInfo(oinfo);
            }
            sAll += otypeinfo.tostring();
        }
        Debug.LogError(sAll);
    }
예제 #2
0
 public void AddMemberInfo(XMLMemberInfo oinfo)
 {
     memberList.Add(oinfo);
 }