示例#1
0
        public ServiceMatcher(
            Type targetType, TypeCategories typeCategory,
            string namePostfix = null,
            IDictionary <string, Type> ctorExtraParamsType = null,
            bool allMethodsVoid = false,
            IOptimizationPackage optimizationPackage = null,
            params Type[] interfaces)
        {
            this.allMethodsVoid      = allMethodsVoid;
            this.optimizationPackage = optimizationPackage;
            moduleBuilder            = optimizationPackage?.moduleBuilder ?? CreateModuleBuilder();
            typeContainer            = optimizationPackage?.typeContainer ?? new DummyTypeContainer();
            this.targetType          = targetType;
            this.typeCategory        = typeCategory;
            this.namePostfix         = namePostfix ?? string.Empty;
            this.ctorExtraParamsType = ctorExtraParamsType ?? new Dictionary <string, Type>();
            this.interfaces          = interfaces;

            typeAttributes       = new List <Tuple <Type, IDictionary <Type, object>, IDictionary <string, object> > >();
            allMembersAttributes = new List <Tuple <Type, IDictionary <Type, object>, IDictionary <string, object> > >();

            involvedAttributes            = new List <Tuple <Type, IDictionary <Type, object>, IDictionary <string, object> > >();
            involvedTypeMembersAttributes = new List <Tuple <Type, IDictionary <Type, object>, IDictionary <string, object> > >();
        }
 public OptimizationPackage(ModuleBuilder moduleBuilder, IGlobalTypeContainer typeContainer)
 {
     this.moduleBuilder = moduleBuilder;
     this.typeContainer = typeContainer;
 }