Ejemplo n.º 1
0
        private static void ModelParameters(ParameterInfo[] parameterInfos, AssociativeXmlObject parent)
        {
            ArrayConstruct arrayConstruct00;
            PropertyConstruct propertyConstruct00;
            ObjectConstruct objectConstruct00;

            if ((object)parameterInfos == null)
                throw new ArgumentNullException("parameterInfos");

            if ((object)parent == null)
                throw new ArgumentNullException("parent");

            arrayConstruct00 = new ArrayConstruct();
            arrayConstruct00.Name = "Parameters";
            parent.Items.Add(arrayConstruct00);

            foreach (ParameterInfo parameterInfo in parameterInfos)
            {
                objectConstruct00 = new ObjectConstruct();
                arrayConstruct00.Items.Add(objectConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ParameterName";
                propertyConstruct00.RawValue = parameterInfo.Name;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ParameterDefaultValue";
                propertyConstruct00.RawValue = parameterInfo.DefaultValue;
                objectConstruct00.Items.Add(propertyConstruct00);
            #if !__MonoCS__
                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ParameterHasDefaultValue";
                propertyConstruct00.RawValue = parameterInfo.HasDefaultValue;
                objectConstruct00.Items.Add(propertyConstruct00);
            #endif
                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ParameterIsIn";
                propertyConstruct00.RawValue = parameterInfo.IsIn;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ParameterIsLcid";
                propertyConstruct00.RawValue = parameterInfo.IsLcid;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ParameterIsOptional";
                propertyConstruct00.RawValue = parameterInfo.IsOptional;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ParameterIsOut";
                propertyConstruct00.RawValue = parameterInfo.IsOut;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ParameterIsRetval";
                propertyConstruct00.RawValue = parameterInfo.IsRetval;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ParameterTypeName";
                propertyConstruct00.RawValue = parameterInfo.ParameterType.Name;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ParameterTypeNamespace";
                propertyConstruct00.RawValue = parameterInfo.ParameterType.Namespace;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ParameterTypeFullName";
                propertyConstruct00.RawValue = parameterInfo.ParameterType.FullName;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ParameterTypeAssemblyQualifiedName";
                propertyConstruct00.RawValue = parameterInfo.ParameterType.AssemblyQualifiedName;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ParameterIsByRef";
                propertyConstruct00.RawValue = parameterInfo.ParameterType.IsByRef;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ParameterPosition";
                propertyConstruct00.RawValue = parameterInfo.Position;
                objectConstruct00.Items.Add(propertyConstruct00);

                ModelCustomAttributes(parameterInfo, objectConstruct00);
            }
        }
Ejemplo n.º 2
0
        private static void ModelFields(FieldInfo[] fieldInfos, AssociativeXmlObject parent)
        {
            ArrayConstruct arrayConstruct00;
            PropertyConstruct propertyConstruct00;
            ObjectConstruct objectConstruct00;

            if ((object)fieldInfos == null)
                throw new ArgumentNullException("fieldInfos");

            if ((object)parent == null)
                throw new ArgumentNullException("parent");

            arrayConstruct00 = new ArrayConstruct();
            arrayConstruct00.Name = "Fields";
            parent.Items.Add(arrayConstruct00);

            foreach (FieldInfo fieldInfo in fieldInfos)
            {
                objectConstruct00 = new ObjectConstruct();
                arrayConstruct00.Items.Add(objectConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldName";
                propertyConstruct00.RawValue = fieldInfo.Name;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldTypeName";
                propertyConstruct00.RawValue = fieldInfo.FieldType.Name;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldTypeNamespace";
                propertyConstruct00.RawValue = fieldInfo.FieldType.Namespace;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldTypeFullName";
                propertyConstruct00.RawValue = fieldInfo.FieldType.FullName;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldTypeAssemblyQualifiedName";
                propertyConstruct00.RawValue = fieldInfo.FieldType.AssemblyQualifiedName;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldIsAssembly";
                propertyConstruct00.RawValue = fieldInfo.IsAssembly;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldIsFamily";
                propertyConstruct00.RawValue = fieldInfo.IsFamily;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldIsFamilyAndAssembly";
                propertyConstruct00.RawValue = fieldInfo.IsFamilyAndAssembly;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldIsFamilyOrAssembly";
                propertyConstruct00.RawValue = fieldInfo.IsFamilyOrAssembly;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldIsInitOnly";
                propertyConstruct00.RawValue = fieldInfo.IsInitOnly;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldIsLiteral";
                propertyConstruct00.RawValue = fieldInfo.IsLiteral;
                objectConstruct00.Items.Add(propertyConstruct00);

                if (fieldInfo.IsLiteral)
                {
                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "FieldRawConstantValue";
                    propertyConstruct00.RawValue = fieldInfo.GetRawConstantValue();
                    objectConstruct00.Items.Add(propertyConstruct00);
                }

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldIsNotSerialized";
                propertyConstruct00.RawValue = fieldInfo.IsNotSerialized;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldIsPinvokeImpl";
                propertyConstruct00.RawValue = fieldInfo.IsPinvokeImpl;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldIsPrivate";
                propertyConstruct00.RawValue = fieldInfo.IsPrivate;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldIsPublic";
                propertyConstruct00.RawValue = fieldInfo.IsPublic;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldIsSecurityCritical";
                propertyConstruct00.RawValue = fieldInfo.IsSecurityCritical;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldIsSecuritySafeCritical";
                propertyConstruct00.RawValue = fieldInfo.IsSecuritySafeCritical;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldIsSecurityTransparent";
                propertyConstruct00.RawValue = fieldInfo.IsSecurityTransparent;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldIsSpecialName";
                propertyConstruct00.RawValue = fieldInfo.IsSpecialName;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "FieldIsStatic";
                propertyConstruct00.RawValue = fieldInfo.IsStatic;
                objectConstruct00.Items.Add(propertyConstruct00);

                ModelCustomAttributes(fieldInfo, objectConstruct00);
            }
        }
Ejemplo n.º 3
0
        private static void ModelMethods(MethodInfo[] methodInfos, AssociativeXmlObject parent)
        {
            ArrayConstruct arrayConstruct00;
            PropertyConstruct propertyConstruct00;
            ObjectConstruct objectConstruct00;

            ParameterInfo[] parameterInfos;
            Type[] childTypes;

            if ((object)methodInfos == null)
                throw new ArgumentNullException("methodInfos");

            if ((object)parent == null)
                throw new ArgumentNullException("parent");

            arrayConstruct00 = new ArrayConstruct();
            arrayConstruct00.Name = "Methods";
            parent.Items.Add(arrayConstruct00);

            foreach (MethodInfo methodInfo in methodInfos)
            {
                if (!IsRealMemberInfo(methodInfo))
                    continue;

                objectConstruct00 = new ObjectConstruct();
                arrayConstruct00.Items.Add(objectConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodName";
                propertyConstruct00.RawValue = methodInfo.Name;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodCallingConvention";
                propertyConstruct00.RawValue = methodInfo.CallingConvention;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodContainsGenericParameters";
                propertyConstruct00.RawValue = methodInfo.ContainsGenericParameters;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsAbstract";
                propertyConstruct00.RawValue = methodInfo.IsAbstract;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsAssembly";
                propertyConstruct00.RawValue = methodInfo.IsAssembly;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsConstructor";
                propertyConstruct00.RawValue = methodInfo.IsConstructor;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsFamily";
                propertyConstruct00.RawValue = methodInfo.IsFamily;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsFamilyAndAssembly";
                propertyConstruct00.RawValue = methodInfo.IsFamilyAndAssembly;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsFamilyOrAssembly";
                propertyConstruct00.RawValue = methodInfo.IsFamilyOrAssembly;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsFinal";
                propertyConstruct00.RawValue = methodInfo.IsFinal;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsGenericMethod";
                propertyConstruct00.RawValue = methodInfo.IsGenericMethod;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsGenericMethodDefinition";
                propertyConstruct00.RawValue = methodInfo.IsGenericMethodDefinition;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsHideBySig";
                propertyConstruct00.RawValue = methodInfo.IsHideBySig;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsPrivate";
                propertyConstruct00.RawValue = methodInfo.IsPrivate;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsPublic";
                propertyConstruct00.RawValue = methodInfo.IsPublic;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsSecurityCritical";
                propertyConstruct00.RawValue = methodInfo.IsSecurityCritical;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsSecuritySafeCritical";
                propertyConstruct00.RawValue = methodInfo.IsSecuritySafeCritical;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsSecurityTransparent";
                propertyConstruct00.RawValue = methodInfo.IsSecurityTransparent;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsSpecialName";
                propertyConstruct00.RawValue = methodInfo.IsSpecialName;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsStatic";
                propertyConstruct00.RawValue = methodInfo.IsStatic;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodIsVirtual";
                propertyConstruct00.RawValue = methodInfo.IsVirtual;
                objectConstruct00.Items.Add(propertyConstruct00);
            #if !__MonoCS__
                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodImplementationFlags";
                propertyConstruct00.RawValue = methodInfo.MethodImplementationFlags;
                objectConstruct00.Items.Add(propertyConstruct00);
            #endif
                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodReturnTypeName";
                propertyConstruct00.RawValue = methodInfo.ReturnType.Name;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodReturnTypeNamespace";
                propertyConstruct00.RawValue = methodInfo.ReturnType.Namespace;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodReturnTypeFullName";
                propertyConstruct00.RawValue = methodInfo.ReturnType.FullName;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "MethodReturnTypeAssemblyQualifiedName";
                propertyConstruct00.RawValue = methodInfo.ReturnType.AssemblyQualifiedName;
                objectConstruct00.Items.Add(propertyConstruct00);

                if (methodInfo.IsGenericMethod)
                {
                    var _methodInfo = methodInfo.GetGenericMethodDefinition();

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "MethodGenericMethodDefinitionName";
                    propertyConstruct00.RawValue = _methodInfo.DeclaringType.Name;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "MethodGenericMethodDefinitionNamespace";
                    propertyConstruct00.RawValue = _methodInfo.DeclaringType.Namespace;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "MethodGenericMethodDefinitionFullName";
                    propertyConstruct00.RawValue = _methodInfo.DeclaringType.FullName;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "MethodGenericMethodDefinitionAssemblyQualifiedName";
                    propertyConstruct00.RawValue = _methodInfo.DeclaringType.AssemblyQualifiedName;
                    objectConstruct00.Items.Add(propertyConstruct00);
                }

                ModelCustomAttributes(methodInfo, objectConstruct00);

                parameterInfos = methodInfo.GetParameters();
                Array.Resize(ref parameterInfos, parameterInfos.Length + 1);
                parameterInfos[parameterInfos.Length - 1] = methodInfo.ReturnParameter;

                ModelParameters(parameterInfos, objectConstruct00);

                childTypes = methodInfo.GetGenericArguments();

                ModelTypes("GenericArguments", childTypes, objectConstruct00);
            }
        }
Ejemplo n.º 4
0
        private static void ModelCustomAttributes(ICustomAttributeProvider customAttributeProvider, AssociativeXmlObject parent)
        {
            ArrayConstruct arrayConstruct00;
            PropertyConstruct propertyConstruct00;
            ObjectConstruct objectConstruct00;
            ArrayConstruct arrayConstruct01;
            ObjectConstruct objectConstruct01;
            PropertyConstruct propertyConstruct01;

            Attribute[] customAttributes;
            PropertyInfo[] publicPropertyInfos;
            object value;

            if ((object)customAttributeProvider == null)
                throw new ArgumentNullException("customAttributeProvider");

            if ((object)parent == null)
                throw new ArgumentNullException("parent");

            customAttributes = Reflexion.GetAllAttributes<Attribute>(customAttributeProvider);

            arrayConstruct00 = new ArrayConstruct();
            arrayConstruct00.Name = "CustomAttributes";
            parent.Items.Add(arrayConstruct00);

            if ((object)customAttributes != null)
            {
                foreach (Attribute customAttribute in customAttributes)
                {
                    objectConstruct00 = new ObjectConstruct();
                    arrayConstruct00.Items.Add(objectConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "CustomAttributeTypeFullName";
                    propertyConstruct00.RawValue = customAttribute.GetType().FullName;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    publicPropertyInfos = customAttribute.GetType().GetProperties(BindingFlags.Public | BindingFlags.Instance);

                    if ((object)publicPropertyInfos != null)
                    {
                        arrayConstruct01 = new ArrayConstruct();
                        arrayConstruct01.Name = "CustomAttributeProperties";
                        objectConstruct00.Items.Add(arrayConstruct01);

                        foreach (PropertyInfo publicPropertyInfo in publicPropertyInfos)
                        {
                            objectConstruct01 = new ObjectConstruct();
                            arrayConstruct01.Items.Add(objectConstruct01);

                            propertyConstruct01 = new PropertyConstruct();
                            propertyConstruct01.Name = "CustomAttributePropertyName";
                            propertyConstruct01.RawValue = publicPropertyInfo.Name;
                            objectConstruct01.Items.Add(propertyConstruct01);

                            if (Reflexion.GetLogicalPropertyValue(customAttribute, publicPropertyInfo.Name, out value))
                            {
                                propertyConstruct01 = new PropertyConstruct();
                                propertyConstruct01.Name = "CustomAttributePropertyValue";
                                propertyConstruct01.RawValue = value.SafeToString();
                                objectConstruct01.Items.Add(propertyConstruct01);
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 5
0
        private static void ModelEvents(EventInfo[] eventInfos, AssociativeXmlObject parent)
        {
            ArrayConstruct arrayConstruct00;
            PropertyConstruct propertyConstruct00;
            ObjectConstruct objectConstruct00;

            MethodInfo methodInfo;

            if ((object)eventInfos == null)
                throw new ArgumentNullException("eventInfos");

            if ((object)parent == null)
                throw new ArgumentNullException("parent");

            arrayConstruct00 = new ArrayConstruct();
            arrayConstruct00.Name = "Events";
            parent.Items.Add(arrayConstruct00);

            foreach (EventInfo eventInfo in eventInfos)
            {
                objectConstruct00 = new ObjectConstruct();
                arrayConstruct00.Items.Add(objectConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "EventName";
                propertyConstruct00.RawValue = eventInfo.Name;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "EventHandlerTypeName";
                propertyConstruct00.RawValue = eventInfo.EventHandlerType.Name;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "EventHandlerTypeNamespace";
                propertyConstruct00.RawValue = eventInfo.EventHandlerType.Namespace;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "EventHandlerTypeFullName";
                propertyConstruct00.RawValue = eventInfo.EventHandlerType.FullName;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "EventHandlerTypeAssemblyQualifiedName";
                propertyConstruct00.RawValue = eventInfo.EventHandlerType.AssemblyQualifiedName;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "EventIsMulticast";
                propertyConstruct00.RawValue = eventInfo.IsMulticast;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "EventIsSpecialName";
                propertyConstruct00.RawValue = eventInfo.IsSpecialName;
                objectConstruct00.Items.Add(propertyConstruct00);

                methodInfo = eventInfo.GetAddMethod();

                if ((object)methodInfo != null)
                {
                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "EventAddMethodIsStatic";
                    propertyConstruct00.RawValue = methodInfo.IsStatic;
                    objectConstruct00.Items.Add(propertyConstruct00);
                }

                methodInfo = eventInfo.GetRemoveMethod();

                if ((object)methodInfo != null)
                {
                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "EventRemoveMethodIsStatic";
                    propertyConstruct00.RawValue = methodInfo.IsStatic;
                    objectConstruct00.Items.Add(propertyConstruct00);
                }

                methodInfo = eventInfo.GetRaiseMethod();

                if ((object)methodInfo != null)
                {
                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "EventRaiseMethodIsStatic";
                    propertyConstruct00.RawValue = methodInfo.IsStatic;
                    objectConstruct00.Items.Add(propertyConstruct00);
                }

                ModelCustomAttributes(eventInfo, objectConstruct00);
            }
        }
Ejemplo n.º 6
0
        private static void ModelAssemblyReferences(AssemblyName[] assemblyReferences, AssociativeXmlObject parent)
        {
            ArrayConstruct arrayConstruct00;
            ObjectConstruct objectConstruct00;

            if ((object)assemblyReferences == null)
                throw new ArgumentNullException("assemblyReferences");

            if ((object)parent == null)
                throw new ArgumentNullException("parent");

            arrayConstruct00 = new ArrayConstruct();
            arrayConstruct00.Name = "AssemblyReferences";
            parent.Items.Add(arrayConstruct00);

            foreach (AssemblyName assemblyReference in assemblyReferences)
            {
                objectConstruct00 = new ObjectConstruct();
                arrayConstruct00.Items.Add(objectConstruct00);

                ModelAssemblyName(assemblyReference, objectConstruct00);
            }
        }
Ejemplo n.º 7
0
        private static void ModelConstructors(ConstructorInfo[] constructorInfos, AssociativeXmlObject parent)
        {
            ArrayConstruct arrayConstruct00;
            PropertyConstruct propertyConstruct00;
            ObjectConstruct objectConstruct00;

            ParameterInfo[] parameterInfos;

            if ((object)constructorInfos == null)
                throw new ArgumentNullException("constructorInfos");

            if ((object)parent == null)
                throw new ArgumentNullException("parent");

            arrayConstruct00 = new ArrayConstruct();
            arrayConstruct00.Name = "Constructors";
            parent.Items.Add(arrayConstruct00);

            foreach (ConstructorInfo constructorInfo in constructorInfos)
            {
                objectConstruct00 = new ObjectConstruct();
                arrayConstruct00.Items.Add(objectConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorName";
                propertyConstruct00.RawValue = constructorInfo.Name;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorCallingConvention";
                propertyConstruct00.RawValue = constructorInfo.CallingConvention;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorContainsGenericParameters";
                propertyConstruct00.RawValue = constructorInfo.ContainsGenericParameters;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorIsGenericMethod";
                propertyConstruct00.RawValue = constructorInfo.IsGenericMethod;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorIsGenericMethodDefinition";
                propertyConstruct00.RawValue = constructorInfo.IsGenericMethodDefinition;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorIsAbstract";
                propertyConstruct00.RawValue = constructorInfo.IsAbstract;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorIsAssembly";
                propertyConstruct00.RawValue = constructorInfo.IsAssembly;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorIsFamily";
                propertyConstruct00.RawValue = constructorInfo.IsFamily;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorIsFamilyAndAssembly";
                propertyConstruct00.RawValue = constructorInfo.IsFamilyAndAssembly;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorIsFamilyOrAssembly";
                propertyConstruct00.RawValue = constructorInfo.IsFamilyOrAssembly;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorIsFinal";
                propertyConstruct00.RawValue = constructorInfo.IsFinal;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorIsHideBySig";
                propertyConstruct00.RawValue = constructorInfo.IsHideBySig;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorIsPrivate";
                propertyConstruct00.RawValue = constructorInfo.IsPrivate;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorIsPublic";
                propertyConstruct00.RawValue = constructorInfo.IsPublic;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorIsSecurityCritical";
                propertyConstruct00.RawValue = constructorInfo.IsSecurityCritical;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorIsSecuritySafeCritical";
                propertyConstruct00.RawValue = constructorInfo.IsSecuritySafeCritical;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorIsSecurityTransparent";
                propertyConstruct00.RawValue = constructorInfo.IsSecurityTransparent;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorIsSpecialName";
                propertyConstruct00.RawValue = constructorInfo.IsSpecialName;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorIsStatic";
                propertyConstruct00.RawValue = constructorInfo.IsStatic;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorIsVirtual";
                propertyConstruct00.RawValue = constructorInfo.IsVirtual;
                objectConstruct00.Items.Add(propertyConstruct00);
            #if !__MonoCS__
                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "ConstructorMethodImplementationFlags";
                propertyConstruct00.RawValue = constructorInfo.MethodImplementationFlags;
                objectConstruct00.Items.Add(propertyConstruct00);
            #endif
                ModelCustomAttributes(constructorInfo, objectConstruct00);

                parameterInfos = constructorInfo.GetParameters();

                ModelParameters(parameterInfos, objectConstruct00);
            }
        }
Ejemplo n.º 8
0
        private static void ModelTypes(string arrayName, Type[] types, AssociativeXmlObject parent)
        {
            ArrayConstruct arrayConstruct00;
            PropertyConstruct propertyConstruct00;
            ObjectConstruct objectConstruct00;

            FieldInfo[] fieldInfos;
            PropertyInfo[] propertyInfos;
            MethodInfo[] methodInfos;
            EventInfo[] eventInfos;
            ConstructorInfo[] constructorInfos;

            Type[] childTypes;

            if ((object)types == null)
                throw new ArgumentNullException("types");

            if ((object)parent == null)
                throw new ArgumentNullException("parent");

            arrayConstruct00 = new ArrayConstruct();
            arrayConstruct00.Name = arrayName;
            parent.Items.Add(arrayConstruct00);

            foreach (Type type in types)
            {
                Console.WriteLine("{0} ==> '{1}'", arrayName, type.FullName);

                objectConstruct00 = new ObjectConstruct();
                arrayConstruct00.Items.Add(objectConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeName";
                propertyConstruct00.RawValue = type.Name;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeNamespace";
                propertyConstruct00.RawValue = type.Namespace;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeFullName";
                propertyConstruct00.RawValue = type.FullName;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeAssemblyQualifiedName";
                propertyConstruct00.RawValue = type.AssemblyQualifiedName;
                objectConstruct00.Items.Add(propertyConstruct00);

                if ((object)type.BaseType != null)
                {
                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "TypeBaseName";
                    propertyConstruct00.RawValue = type.BaseType.Name;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "TypeBaseNamespace";
                    propertyConstruct00.RawValue = type.BaseType.Namespace;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "TypeBaseFullName";
                    propertyConstruct00.RawValue = type.BaseType.FullName;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "TypeBaseAssemblyQualifiedName";
                    propertyConstruct00.RawValue = type.BaseType.AssemblyQualifiedName;
                    objectConstruct00.Items.Add(propertyConstruct00);
                }

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeGuid";
                propertyConstruct00.RawValue = type.GUID;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsAbstract";
                propertyConstruct00.RawValue = type.IsAbstract;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsAnsiClass";
                propertyConstruct00.RawValue = type.IsAnsiClass;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsArray";
                propertyConstruct00.RawValue = type.IsArray;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsAutoClass";
                propertyConstruct00.RawValue = type.IsAutoClass;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsAutoLayout";
                propertyConstruct00.RawValue = type.IsAutoLayout;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsByRef";
                propertyConstruct00.RawValue = type.IsByRef;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsClass";
                propertyConstruct00.RawValue = type.IsClass;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsComObject";
                propertyConstruct00.RawValue = type.IsCOMObject;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsConstructedGenericType";
                propertyConstruct00.RawValue = type.IsConstructedGenericType;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsContextful";
                propertyConstruct00.RawValue = type.IsContextful;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsEnum";
                propertyConstruct00.RawValue = type.IsEnum;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsExplicitLayout";
                propertyConstruct00.RawValue = type.IsExplicitLayout;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsGenericParameter";
                propertyConstruct00.RawValue = type.IsGenericParameter;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsGenericType";
                propertyConstruct00.RawValue = type.IsGenericType;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsGenericTypeDefinition";
                propertyConstruct00.RawValue = type.IsGenericTypeDefinition;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsImport";
                propertyConstruct00.RawValue = type.IsImport;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsInterface";
                propertyConstruct00.RawValue = type.IsInterface;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsLayoutSequential";
                propertyConstruct00.RawValue = type.IsLayoutSequential;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsMarshalByRef";
                propertyConstruct00.RawValue = type.IsMarshalByRef;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsNested";
                propertyConstruct00.RawValue = type.IsNested;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsNestedAssembly";
                propertyConstruct00.RawValue = type.IsNestedAssembly;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsNestedFamANDAssem";
                propertyConstruct00.RawValue = type.IsNestedFamANDAssem;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsNestedFamORAssem";
                propertyConstruct00.RawValue = type.IsNestedFamORAssem;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsNestedFamily";
                propertyConstruct00.RawValue = type.IsNestedFamily;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsNestedPrivate";
                propertyConstruct00.RawValue = type.IsNestedPrivate;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsNestedPublic";
                propertyConstruct00.RawValue = type.IsNestedPublic;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsNotPublic";
                propertyConstruct00.RawValue = type.IsNotPublic;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsPointer";
                propertyConstruct00.RawValue = type.IsPointer;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsPrimitive";
                propertyConstruct00.RawValue = type.IsPrimitive;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsPublic";
                propertyConstruct00.RawValue = type.IsPublic;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsSealed";
                propertyConstruct00.RawValue = type.IsSealed;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsSecurityCritical";
                propertyConstruct00.RawValue = type.IsSecurityCritical;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsSecuritySafeCritical";
                propertyConstruct00.RawValue = type.IsSecuritySafeCritical;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsSecurityTransparent";
                propertyConstruct00.RawValue = type.IsSecurityTransparent;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsSerializable";
                propertyConstruct00.RawValue = type.IsSerializable;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsSpecialName";
                propertyConstruct00.RawValue = type.IsSpecialName;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsUnicodeClass";
                propertyConstruct00.RawValue = type.IsUnicodeClass;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsValueType";
                propertyConstruct00.RawValue = type.IsValueType;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeIsVisible";
                propertyConstruct00.RawValue = type.IsVisible;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeNamespace";
                propertyConstruct00.RawValue = type.Namespace;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "TypeContainsGenericParameters";
                propertyConstruct00.RawValue = type.ContainsGenericParameters;
                objectConstruct00.Items.Add(propertyConstruct00);

                if (type.IsGenericParameter)
                {
                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "TypeGenericParameterAttributes";
                    propertyConstruct00.RawValue = type.GenericParameterAttributes;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "TypeGenericParameterPosition";
                    propertyConstruct00.RawValue = type.GenericParameterPosition;
                    objectConstruct00.Items.Add(propertyConstruct00);
                }

                if (type.IsGenericType)
                {
                    var _type = type.GetGenericTypeDefinition();

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "TypeGenericTypeDefinitionName";
                    propertyConstruct00.RawValue = _type.Name;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "TypeGenericTypeDefinitionNamespace";
                    propertyConstruct00.RawValue = _type.Namespace;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "TypeGenericTypeDefinitionFullName";
                    propertyConstruct00.RawValue = _type.FullName;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "TypeGenericTypeDefinitionAssemblyQualifiedName";
                    propertyConstruct00.RawValue = _type.AssemblyQualifiedName;
                    objectConstruct00.Items.Add(propertyConstruct00);
                }

                ModelCustomAttributes(type, objectConstruct00);

                fieldInfos = type.GetFields(BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);

                ModelFields(fieldInfos, objectConstruct00);

                propertyInfos = type.GetProperties(BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);

                ModelProperties(propertyInfos, objectConstruct00);

                methodInfos = type.GetMethods(BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);

                ModelMethods(methodInfos, objectConstruct00);

                eventInfos = type.GetEvents(BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);

                ModelEvents(eventInfos, objectConstruct00);

                constructorInfos = type.GetConstructors(BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);

                ModelConstructors(constructorInfos, objectConstruct00);

                childTypes = type.GenericTypeArguments;

                ModelTypes("GenericTypeArguments", childTypes, objectConstruct00);

                childTypes = type.GetGenericArguments();

                ModelTypes("GenericArguments", childTypes, objectConstruct00);

                if (type.IsGenericParameter)
                {
                    childTypes = type.GetGenericParameterConstraints();

                    ModelTypes("GenericParameterConstraints", childTypes, objectConstruct00);
                }

                childTypes = type.GetNestedTypes(BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);

                ModelTypes("NestedTypes", childTypes, objectConstruct00);
            }
        }
Ejemplo n.º 9
0
        private static void ModelAssemblies(Assembly[] assemblies, AssociativeXmlObject parent)
        {
            ArrayConstruct arrayConstruct00;
            PropertyConstruct propertyConstruct00;
            ObjectConstruct objectConstruct00;

            Type[] types;
            AssemblyName[] assemblyReferences;
            AssemblyName assemblyName;

            if ((object)assemblies == null)
                throw new ArgumentNullException("assemblies");

            if ((object)parent == null)
                throw new ArgumentNullException("parent");

            arrayConstruct00 = new ArrayConstruct();
            arrayConstruct00.Name = "Assemblies";
            parent.Items.Add(arrayConstruct00);

            foreach (Assembly assembly in assemblies)
            {
                objectConstruct00 = new ObjectConstruct();
                arrayConstruct00.Items.Add(objectConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "AssemblyLoadedFromGlobalAssemblyCache";
                propertyConstruct00.RawValue = assembly.GlobalAssemblyCache;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "AssemblyImageRuntimeVersion";
                propertyConstruct00.RawValue = assembly.ImageRuntimeVersion;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "AssemblyIsDynamic";
                propertyConstruct00.RawValue = assembly.IsDynamic;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "AssemblyIsFullyTrusted";
                propertyConstruct00.RawValue = assembly.IsFullyTrusted;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "AssemblyReflectionOnly";
                propertyConstruct00.RawValue = assembly.ReflectionOnly;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "AssemblyFullName";
                propertyConstruct00.RawValue = assembly.FullName;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "AssemblyLocation";
                propertyConstruct00.RawValue = assembly.Location;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "AssemblyManifestModuleName";
                propertyConstruct00.RawValue = assembly.ManifestModule.Name;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "AssemblyManifestModuleVersionId";
                propertyConstruct00.RawValue = assembly.ManifestModule.ModuleVersionId;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "AssemblyManifestModuleFullyQualifiedName";
                propertyConstruct00.RawValue = assembly.ManifestModule.FullyQualifiedName;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "AssemblyManifestModuleMDStreamVersion";
                propertyConstruct00.RawValue = assembly.ManifestModule.MDStreamVersion;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "AssemblyManifestModuleScopeName";
                propertyConstruct00.RawValue = assembly.ManifestModule.ScopeName;
                objectConstruct00.Items.Add(propertyConstruct00);

                //ModelCustomAttributes(assembly.ManifestModule, objectConstruct00);

                assemblyName = assembly.GetName();

                ModelAssemblyName(assemblyName, objectConstruct00);

                ModelCustomAttributes(assembly, objectConstruct00);

                types = assembly.GetExportedTypes();

                ModelTypes("Types", types, objectConstruct00);

                assemblyReferences = assembly.GetReferencedAssemblies();

                ModelAssemblyReferences(assemblyReferences, objectConstruct00);
            }
        }
Ejemplo n.º 10
0
        private static void ModelProperties(PropertyInfo[] propertyInfos, AssociativeXmlObject parent)
        {
            ArrayConstruct arrayConstruct00;
            PropertyConstruct propertyConstruct00;
            ObjectConstruct objectConstruct00;

            ParameterInfo[] parameterInfos;
            MethodInfo methodInfo;

            if ((object)propertyInfos == null)
                throw new ArgumentNullException("propertyInfos");

            if ((object)parent == null)
                throw new ArgumentNullException("parent");

            arrayConstruct00 = new ArrayConstruct();
            arrayConstruct00.Name = "Properties";
            parent.Items.Add(arrayConstruct00);

            foreach (PropertyInfo propertyInfo in propertyInfos)
            {
                objectConstruct00 = new ObjectConstruct();
                arrayConstruct00.Items.Add(objectConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "PropertyName";
                propertyConstruct00.RawValue = propertyInfo.Name;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "PropertyCanRead";
                propertyConstruct00.RawValue = propertyInfo.CanRead;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "PropertyCanWrite";
                propertyConstruct00.RawValue = propertyInfo.CanWrite;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "PropertyIsSpecialName";
                propertyConstruct00.RawValue = propertyInfo.IsSpecialName;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "PropertyTypeName";
                propertyConstruct00.RawValue = propertyInfo.PropertyType.Name;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "PropertyTypeNamespace";
                propertyConstruct00.RawValue = propertyInfo.PropertyType.Namespace;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "PropertyTypeFullName";
                propertyConstruct00.RawValue = propertyInfo.PropertyType.FullName;
                objectConstruct00.Items.Add(propertyConstruct00);

                propertyConstruct00 = new PropertyConstruct();
                propertyConstruct00.Name = "PropertyTypeAssemblyQualifiedName";
                propertyConstruct00.RawValue = propertyInfo.PropertyType.AssemblyQualifiedName;
                objectConstruct00.Items.Add(propertyConstruct00);

                methodInfo = propertyInfo.GetGetMethod();

                if ((object)methodInfo != null)
                {
                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "PropertyGetMethodIsStatic";
                    propertyConstruct00.RawValue = methodInfo.IsStatic;
                    objectConstruct00.Items.Add(propertyConstruct00);
                }

                methodInfo = propertyInfo.GetSetMethod();

                if ((object)methodInfo != null)
                {
                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "PropertySetMethodIsStatic";
                    propertyConstruct00.RawValue = methodInfo.IsStatic;
                    objectConstruct00.Items.Add(propertyConstruct00);
                }

                ModelCustomAttributes(propertyInfo, objectConstruct00);

                parameterInfos = propertyInfo.GetIndexParameters();

                ModelParameters(parameterInfos, objectConstruct00);
            }
        }
Ejemplo n.º 11
0
        protected override object CoreGetSourceObject(string sourceFilePath, IDictionary<string, IList<string>> properties)
        {
            const string PROP_TOKEN_FIRST_ROW_CONTAINS_COLUMN_HEADINGS = "FirstRowIsHeader";
            const string PROP_TOKEN_FIELD_DELIMITER = "FieldDelimiter";
            //const string PROP_TOKEN_ROW_DELIMITER = "RowDelimiter";
            string line;
            ObjectConstruct objectConstruct00;
            ArrayConstruct arrayConstruct00;
            IList<string> values;
            bool firstRowIsHeader = false;
            string firstRowIsHeaderStr;
            string fieldDelimiter;
            string[] headers = null;

            if ((object)sourceFilePath == null)
                throw new ArgumentNullException("sourceFilePath");

            if ((object)properties == null)
                throw new ArgumentNullException("properties");

            if (DataType.IsWhiteSpace(sourceFilePath))
                throw new ArgumentOutOfRangeException("sourceFilePath");

            sourceFilePath = Path.GetFullPath(sourceFilePath);

            objectConstruct00 = new ObjectConstruct();
            arrayConstruct00 = new ArrayConstruct();
            arrayConstruct00.Name = "TextFileLines";
            objectConstruct00.Items.Add(arrayConstruct00);

            firstRowIsHeaderStr = null;
            if (properties.TryGetValue(PROP_TOKEN_FIRST_ROW_CONTAINS_COLUMN_HEADINGS, out values))
            {
                if ((object)values != null && values.Count == 1)
                {
                    firstRowIsHeaderStr = values[0];
                    if (!DataType.TryParse<bool>(firstRowIsHeaderStr, out firstRowIsHeader))
                        firstRowIsHeader = false;
                }
            }

            fieldDelimiter = null;
            if (properties.TryGetValue(PROP_TOKEN_FIELD_DELIMITER, out values))
            {
                if ((object)values != null && values.Count == 1)
                    fieldDelimiter = values[0];
            }

            using (StreamReader streamReader = File.OpenText(sourceFilePath))
            {
                int i = 0;

                while (((line = streamReader.ReadLine()) ?? "").Trim() != "")
                {
                    ObjectConstruct objectConstruct01;
                    PropertyConstruct propertyConstruct01;
                    string[] temp;

                    objectConstruct01 = new ObjectConstruct();
                    arrayConstruct00.Items.Add(objectConstruct01);

                    if (DataType.IsNullOrWhiteSpace(fieldDelimiter))
                    {
                        propertyConstruct01 = new PropertyConstruct();
                        propertyConstruct01.Name = "TextFileLine";
                        propertyConstruct01.RawValue = line;
                        objectConstruct01.Items.Add(propertyConstruct01);
                    }
                    else
                    {
                        temp = line.Split(fieldDelimiter.ToCharArray());

                        if (firstRowIsHeader && i == 0)
                        {
                            headers = temp;
                            arrayConstruct00.Items.Remove(objectConstruct01);
                            i++;
                            continue;
                        }

                        if ((object)temp != null)
                        {
                            int j = 0;

                            foreach (string pmet in temp)
                            {
                                propertyConstruct01 = new PropertyConstruct();

                                if (firstRowIsHeader && (object)headers != null)
                                    propertyConstruct01.Name = string.Format("{0}", headers[j++]);
                                else
                                    propertyConstruct01.Name = string.Format("TextFileField_{0:00000000}", j++);

                                propertyConstruct01.RawValue = pmet;
                                objectConstruct01.Items.Add(propertyConstruct01);
                            }
                        }
                    }

                    i++;
                }
            }

            return objectConstruct00;
        }
Ejemplo n.º 12
0
        private static void EnumerateFileSystem(string directoryPath, bool recursive, string wildcard, AssociativeXmlObject parent, string sourcePath)
        {
            ArrayConstruct arrayConstruct00;
            PropertyConstruct propertyConstruct00;
            ObjectConstruct objectConstruct00;

            ArrayConstruct arrayConstruct01;
            PropertyConstruct propertyConstruct01;
            ObjectConstruct objectConstruct01;

            string[] directories;
            string[] files;

            if ((object)directoryPath == null)
                throw new ArgumentNullException("directoryPath");

            if ((object)parent == null)
                throw new ArgumentNullException("parent");

            arrayConstruct00 = new ArrayConstruct();
            arrayConstruct00.Name = "Files";
            parent.Items.Add(arrayConstruct00);

            arrayConstruct01 = new ArrayConstruct();
            arrayConstruct01.Name = "Directories";
            parent.Items.Add(arrayConstruct01);

            if (File.Exists(directoryPath))
            {
                files = new string[] { Path.GetFullPath(directoryPath) };
                directories = null;
            }
            else
            {
                if (DataType.IsNullOrWhiteSpace(wildcard))
                    files = Directory.GetFiles(directoryPath);
                else
                    files = Directory.GetFiles(directoryPath, wildcard);

                if (DataType.IsNullOrWhiteSpace(wildcard))
                    directories = Directory.GetDirectories(directoryPath);
                else
                    directories = Directory.GetDirectories(directoryPath, wildcard);
            }

            if ((object)files != null)
            {
                foreach (string file in files)
                {
                    FileInfo fileInfo;

                    fileInfo = new FileInfo(file);

                    objectConstruct00 = new ObjectConstruct();
                    arrayConstruct00.Items.Add(objectConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "FileFullName";
                    propertyConstruct00.RawValue = fileInfo.FullName;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "FileFullNameRelativeToSource";
                    propertyConstruct00.RawValue = EvaluateRelativePath2(sourcePath, fileInfo.FullName);
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "FileCreationTime";
                    propertyConstruct00.RawValue = fileInfo.CreationTime;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "FileCreationTimeUtc";
                    propertyConstruct00.RawValue = fileInfo.CreationTimeUtc;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "FileExtension";
                    propertyConstruct00.RawValue = fileInfo.Extension;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "FileIsReadOnly";
                    propertyConstruct00.RawValue = fileInfo.IsReadOnly;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "FileLastAccessTime";
                    propertyConstruct00.RawValue = fileInfo.LastAccessTime;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "FileLastAccessTimeUtc";
                    propertyConstruct00.RawValue = fileInfo.LastAccessTimeUtc;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "FileLastWriteTime";
                    propertyConstruct00.RawValue = fileInfo.LastWriteTime;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "FileLastWriteTimeUtc";
                    propertyConstruct00.RawValue = fileInfo.LastWriteTimeUtc;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "FileLength";
                    propertyConstruct00.RawValue = fileInfo.Length;
                    objectConstruct00.Items.Add(propertyConstruct00);

                    propertyConstruct00 = new PropertyConstruct();
                    propertyConstruct00.Name = "FileName";
                    propertyConstruct00.RawValue = fileInfo.Name;
                    objectConstruct00.Items.Add(propertyConstruct00);
                }
            }

            if ((object)directories != null)
            {
                foreach (string directory in directories)
                {
                    DirectoryInfo directoryInfo;

                    directoryInfo = new DirectoryInfo(directory);

                    objectConstruct01 = new ObjectConstruct();
                    arrayConstruct01.Items.Add(objectConstruct01);

                    propertyConstruct01 = new PropertyConstruct();
                    propertyConstruct01.Name = "DirectoryFullName";
                    propertyConstruct01.RawValue = directoryInfo.FullName;
                    objectConstruct01.Items.Add(propertyConstruct01);

                    propertyConstruct01 = new PropertyConstruct();
                    propertyConstruct01.Name = "DirectoryFullNameRelativeToSource";
                    propertyConstruct01.RawValue = EvaluateRelativePath2(sourcePath, directoryInfo.FullName);
                    objectConstruct01.Items.Add(propertyConstruct01);

                    propertyConstruct01 = new PropertyConstruct();
                    propertyConstruct01.Name = "DirectoryAttributes";
                    propertyConstruct01.RawValue = directoryInfo.Attributes;
                    objectConstruct01.Items.Add(propertyConstruct01);

                    propertyConstruct01 = new PropertyConstruct();
                    propertyConstruct01.Name = "DirectoryCreationTime";
                    propertyConstruct01.RawValue = directoryInfo.CreationTime;
                    objectConstruct01.Items.Add(propertyConstruct01);

                    propertyConstruct01 = new PropertyConstruct();
                    propertyConstruct01.Name = "DirectoryCreationTimeUtc";
                    propertyConstruct01.RawValue = directoryInfo.CreationTimeUtc;
                    objectConstruct01.Items.Add(propertyConstruct01);

                    propertyConstruct01 = new PropertyConstruct();
                    propertyConstruct01.Name = "DirectoryExtension";
                    propertyConstruct01.RawValue = directoryInfo.Extension;
                    objectConstruct01.Items.Add(propertyConstruct01);

                    propertyConstruct01 = new PropertyConstruct();
                    propertyConstruct01.Name = "DirectoryLastAccessTime";
                    propertyConstruct01.RawValue = directoryInfo.LastAccessTime;
                    objectConstruct01.Items.Add(propertyConstruct01);

                    propertyConstruct01 = new PropertyConstruct();
                    propertyConstruct01.Name = "DirectoryLastAccessTimeUtc";
                    propertyConstruct01.RawValue = directoryInfo.LastAccessTimeUtc;
                    objectConstruct01.Items.Add(propertyConstruct01);

                    propertyConstruct01 = new PropertyConstruct();
                    propertyConstruct01.Name = "DirectoryLastWriteTime";
                    propertyConstruct01.RawValue = directoryInfo.LastWriteTime;
                    objectConstruct01.Items.Add(propertyConstruct01);

                    propertyConstruct01 = new PropertyConstruct();
                    propertyConstruct01.Name = "DirectoryLastWriteTimeUtc";
                    propertyConstruct01.RawValue = directoryInfo.LastWriteTimeUtc;
                    objectConstruct01.Items.Add(propertyConstruct01);

                    propertyConstruct01 = new PropertyConstruct();
                    propertyConstruct01.Name = "DirectoryName";
                    propertyConstruct01.RawValue = directoryInfo.Name;
                    objectConstruct01.Items.Add(propertyConstruct01);

                    if (recursive)
                        EnumerateFileSystem(directory, recursive, wildcard, objectConstruct01, sourcePath);
                }
            }
        }
Ejemplo n.º 13
0
        private static void WriteSqlQuery(IEnumerable<SqlQuery> sqlQueries, IAssociativeXmlObject parentAssociativeXmlObject, Type connectionType, string connectionString, bool getSchemaOnly)
        {
            ArrayConstruct arrayConstruct;
            ObjectConstruct objectConstruct;
            PropertyConstruct propertyConstruct;
            Tokenizer tokenizer;

            IList<IDictionary<string, object>> objs;
            string commandText;
            int rcecordsAffected;

            if ((object)sqlQueries == null)
                throw new ArgumentNullException("sqlQueries");

            if ((object)parentAssociativeXmlObject == null)
                throw new ArgumentNullException("parentAssociativeXmlObject");

            if ((object)connectionType == null)
                throw new ArgumentNullException("connectionType");

            if ((object)connectionString == null)
                throw new ArgumentNullException("connectionString");

            if (DataType.IsWhiteSpace(connectionString))
                throw new ArgumentOutOfRangeException("connectionString");

            tokenizer = new Tokenizer(true);

            foreach (SqlQuery sqlQuery in sqlQueries.OrderBy(c => c.Key).ThenBy(c => c.Order))
            {
                arrayConstruct = new ArrayConstruct();
                arrayConstruct.Name = sqlQuery.Key;
                parentAssociativeXmlObject.Items.Add(arrayConstruct);

                commandText = tokenizer.ExpandTokens(sqlQuery.Text, new DynamicWildcardTokenReplacementStrategy(new object[] { parentAssociativeXmlObject }));

                using (IUnitOfWorkContext unitOfWorkContext = UnitOfWorkContext.Create(connectionType, connectionString, false))
                {
                    if (!getSchemaOnly)
                        objs = unitOfWorkContext.ExecuteDictionary(sqlQuery.Type, commandText, null, out rcecordsAffected);
                    else
                        objs = unitOfWorkContext.ExecuteSchema(sqlQuery.Type, commandText, null);
                }

                if ((object)objs != null)
                {
                    propertyConstruct = new PropertyConstruct();
                    propertyConstruct.Name = "RowCount";
                    propertyConstruct.RawValue = objs.Count;
                    arrayConstruct.Items.Add(propertyConstruct);

                    foreach (IDictionary<string, object> obj in objs)
                    {
                        objectConstruct = new ObjectConstruct();
                        arrayConstruct.Items.Add(objectConstruct);

                        if ((object)obj != null)
                        {
                            foreach (KeyValuePair<string, object> keyValuePair in obj)
                            {
                                propertyConstruct = new PropertyConstruct();
                                propertyConstruct.Name = keyValuePair.Key;
                                propertyConstruct.RawValue = keyValuePair.Value;

                                objectConstruct.Items.Add(propertyConstruct);
                            }
                        }

                        // correlated
                        WriteSqlQuery(sqlQuery.SubQueries, objectConstruct, connectionType, connectionString, getSchemaOnly);
                    }
                }
            }
        }
Ejemplo n.º 14
0
        private static void EnumSchema(IAssociativeXmlObject parentAssociativeXmlObject, XmlSchemaObjectCollection currentXmlSchemaObjectCollection)
        {
            XmlSchemaElement xmlSchemaElement;
            XmlSchemaComplexType xmlSchemaComplexType;
            XmlSchemaSequence xmlSchemaSequence;
            XmlSchemaSimpleType xmlSchemaSimpleType;
            ArrayConstruct arrayConstruct00, arrayConstruct01;
            ObjectConstruct objectConstruct00, objectConstruct01;
            PropertyConstruct propertyConstruct00, propertyConstruct01;

            if ((object)parentAssociativeXmlObject == null)
                throw new ArgumentNullException("parentAssociativeXmlObject");

            if ((object)currentXmlSchemaObjectCollection == null)
                throw new ArgumentNullException("currentXmlSchemaObjectCollection");

            arrayConstruct00 = new ArrayConstruct();
            arrayConstruct00.Name = "XmlSchemaElements";
            parentAssociativeXmlObject.Items.Add(arrayConstruct00);

            foreach (XmlSchemaObject xmlSchemaObject in currentXmlSchemaObjectCollection)
            {
                objectConstruct00 = new ObjectConstruct();
                arrayConstruct00.Items.Add(objectConstruct00);

                xmlSchemaElement = xmlSchemaObject as XmlSchemaElement;

                if ((object)xmlSchemaElement != null)
                {
                    if (DataType.IsNullOrWhiteSpace(xmlSchemaElement.Name) &&
                        !DataType.IsNullOrWhiteSpace(xmlSchemaElement.RefName.Name))
                    {
                        propertyConstruct00 = new PropertyConstruct();
                        propertyConstruct00.Name = "XmlSchemaElementIsRef";
                        propertyConstruct00.RawValue = true;
                        objectConstruct00.Items.Add(propertyConstruct00);

                        propertyConstruct00 = new PropertyConstruct();
                        propertyConstruct00.Name = "XmlSchemaElementLocalName";
                        propertyConstruct00.RawValue = xmlSchemaElement.RefName.Name;
                        objectConstruct00.Items.Add(propertyConstruct00);

                        propertyConstruct00 = new PropertyConstruct();
                        propertyConstruct00.Name = "XmlSchemaElementNamespace";
                        propertyConstruct00.RawValue = xmlSchemaElement.RefName.Namespace;
                        objectConstruct00.Items.Add(propertyConstruct00);

                        continue;
                    }
                    else
                    {
                        propertyConstruct00 = new PropertyConstruct();
                        propertyConstruct00.Name = "XmlSchemaElementIsRef";
                        propertyConstruct00.RawValue = false;
                        objectConstruct00.Items.Add(propertyConstruct00);

                        propertyConstruct00 = new PropertyConstruct();
                        propertyConstruct00.Name = "XmlSchemaElementLocalName";
                        propertyConstruct00.RawValue = xmlSchemaElement.QualifiedName.Name;
                        objectConstruct00.Items.Add(propertyConstruct00);

                        propertyConstruct00 = new PropertyConstruct();
                        propertyConstruct00.Name = "XmlSchemaElementNamespace";
                        propertyConstruct00.RawValue = xmlSchemaElement.QualifiedName.Namespace;
                        objectConstruct00.Items.Add(propertyConstruct00);

                        xmlSchemaComplexType = xmlSchemaElement.ElementSchemaType as XmlSchemaComplexType;
                        xmlSchemaSimpleType = xmlSchemaElement.ElementSchemaType as XmlSchemaSimpleType;

                        if ((object)xmlSchemaSimpleType != null)
                        {
                            propertyConstruct00 = new PropertyConstruct();
                            propertyConstruct00.Name = "XmlSchemaElementSimpleType";
                            propertyConstruct00.RawValue = xmlSchemaSimpleType.Datatype.TypeCode;
                            objectConstruct00.Items.Add(propertyConstruct00);
                        }
                        else if ((object)xmlSchemaComplexType != null)
                        {
                            arrayConstruct01 = new ArrayConstruct();
                            arrayConstruct01.Name = "XmlSchemaAttributes";
                            objectConstruct00.Items.Add(arrayConstruct01);

                            if ((object)xmlSchemaComplexType.Attributes != null)
                            {
                                foreach (XmlSchemaAttribute xmlSchemaAttribute in xmlSchemaComplexType.Attributes)
                                {
                                    objectConstruct01 = new ObjectConstruct();
                                    arrayConstruct01.Items.Add(objectConstruct01);

                                    propertyConstruct01 = new PropertyConstruct();
                                    propertyConstruct01.Name = "XmlSchemaElementLocalName";
                                    propertyConstruct01.RawValue = xmlSchemaAttribute.QualifiedName.Name;
                                    objectConstruct01.Items.Add(propertyConstruct01);

                                    propertyConstruct01 = new PropertyConstruct();
                                    propertyConstruct01.Name = "XmlSchemaElementNamespace";
                                    propertyConstruct01.RawValue = xmlSchemaAttribute.QualifiedName.Namespace;
                                    objectConstruct01.Items.Add(propertyConstruct01);

                                    propertyConstruct01 = new PropertyConstruct();
                                    propertyConstruct01.Name = "XmlSchemaElementNamespace";
                                    propertyConstruct01.RawValue = xmlSchemaAttribute.AttributeSchemaType.TypeCode;
                                    objectConstruct01.Items.Add(propertyConstruct01);
                                }
                            }

                            xmlSchemaSequence = xmlSchemaComplexType.ContentTypeParticle as XmlSchemaSequence;

                            if ((object)xmlSchemaSequence != null)
                                EnumSchema(objectConstruct00, xmlSchemaSequence.Items);
                        }
                    }
                }
            }
        }