Beispiel #1
0
        private IAssemblyTypeInfo QueryTypeMethods(
            Type oAssemblyType,
            IAssemblyQueryFilter oQueryFilter)
        {
            IAssemblyTypeInfo oAssemblyTypeInfo =
                new AssemblyTypeInfo(oAssemblyType, oQueryFilter);

            if (oAssemblyTypeInfo.TypeMethodsCount > 0)
            {
                return(oAssemblyTypeInfo);
            }
            else
            {
                return(null);
            }
        }
Beispiel #2
0
        private Type[] FilterOutTypes(
            Assembly oAssembly,
            IAssemblyQueryFilter oQueryFilter)
        {
            ArrayList oAssemblyTypes = new ArrayList();

            Type[] AssemblyPublicTypes = oAssembly.GetTypes();

            Type oCheckedType = null;

            bool bFilterByType = oQueryFilter != null &&
                                 oQueryFilter.TypeName != null &&
                                 oQueryFilter.TypeName != String.Empty;

            if (bFilterByType)
            {
                oCheckedType = AssemblyTypeInfo.GetTypeByName(oQueryFilter.TypeName, oAssembly);
            }

            foreach (Type oAssemblyType in AssemblyPublicTypes)
            {
                bool bShouldBeConsidered =
                    oAssemblyType.IsClass &&
                    (oAssemblyType.IsPublic || oAssemblyType.IsNestedPublic);

                if (bShouldBeConsidered && bFilterByType)
                {
                    bShouldBeConsidered = oCheckedType != null &&
                                          oCheckedType.Equals(oAssemblyType);
                }

                if (bShouldBeConsidered)
                {
                    oAssemblyTypes.Add(oAssemblyType);
                }
            }

            return((Type[])oAssemblyTypes.ToArray(typeof(Type)));
        }