Exemplo n.º 1
0
        public static object EmitInstance(this IClassEmitter classEmitter,
                                          IEmittedTypeHandler handler,
                                          IEnumerable <Type> interfaceTypes = null,
                                          Type baseType = null,
                                          IEnumerable <MethodInfo> methodsToOverride      = null,
                                          IEnumerable <PropertyInfo> propertiesToOverride = null,
                                          IEnumerable <EventInfo> eventsToOverride        = null,
                                          ConstructorInfo baseConstructor = null,
                                          IEnumerable <CustomAttributeBuilder> attributeBuilders = null)
        {
            if (classEmitter == null)
            {
                throw new ArgumentNullException("classEmitter");
            }
            if (handler == null)
            {
                throw new ArgumentNullException("handler");
            }

            var emittedType = classEmitter.EmitClass(interfaceTypes, baseType, methodsToOverride, propertiesToOverride,
                                                     eventsToOverride, baseConstructor, attributeBuilders);

            var result = Activator.CreateInstance(emittedType);

            if (result is IEmittedClass)
            {
                ((IEmittedClass)result).EmittedTypeHandler = handler;
            }

            return(result);
        }
Exemplo n.º 2
0
 public CommandsGenerator(
     IClassEmitter emitter,
     ISettingsInterpreter settingsInterpreter,
     RibbonPanel ribbonPanel)
 {
     _emitter             = emitter;
     _settingsInterpreter = settingsInterpreter;
     _ribbonPanel         = ribbonPanel;
 }
Exemplo n.º 3
0
        public void TestInitialize()
        {
            _context      = new ComponentContext();
            _classEmitter = _context.GetComponent <IClassEmitter>();

//			UNCOMMENT FOLLOWING FOR DEBUGGING
//			_classEmitter = new DefaultClassEmitter {SaveEmittedAssembly = true, SaveTargetFolder = "D:\\"};
//			_context.InitializePlugs(_classEmitter, typeof (DefaultClassEmitter));

            _dth = new TestingEmittedTypeHandler();
        }
Exemplo n.º 4
0
        public static T EmitInterfaceInstance <T>(this IClassEmitter classEmitter,
                                                  IEmittedTypeHandler handler,
                                                  Type baseType = null,
                                                  ConstructorInfo baseConstructor = null,
                                                  IEnumerable <CustomAttributeBuilder> attributeBuilders = null)
            where T : class
        {
            if (classEmitter == null)
            {
                throw new ArgumentNullException("classEmitter");
            }

            var interfaceType = typeof(T);

            if (!interfaceType.IsInterface)
            {
                throw new ArgumentException("T type argument should point to an interface type definition.");
            }

            return(classEmitter.EmitInterfaceInstance(handler, interfaceType, baseType, baseConstructor, attributeBuilders) as T);
        }
Exemplo n.º 5
0
        public static Type EmitInterfaceImplementation(this IClassEmitter classEmitter,
                                                       Type interfaceType,
                                                       Type baseType = null,
                                                       ConstructorInfo baseConstructor = null,
                                                       IEnumerable <CustomAttributeBuilder> attributeBuilders = null)
        {
            if (classEmitter == null)
            {
                throw new ArgumentNullException("classEmitter");
            }
            if (interfaceType == null)
            {
                throw new ArgumentNullException("interfaceType");
            }
            if (!interfaceType.IsInterface)
            {
                throw new ArgumentException("interfaceType should point to an interface type definition.");
            }

            return(classEmitter.EmitClass(new[] { interfaceType }, baseType, null, null, null, baseConstructor,
                                          attributeBuilders));
        }
        public static object EmitInterfaceInstance(this IClassEmitter classEmitter,
                                                   IEmittedTypeHandler handler,
                                                   Type interfaceType,
                                                   Type baseType = null,
                                                   ConstructorInfo baseConstructor = null,
                                                   IEnumerable <CustomAttributeBuilder> attributeBuilders = null)
        {
            if (classEmitter == null)
            {
                throw new ArgumentNullException(nameof(classEmitter));
            }
            if (interfaceType == null)
            {
                throw new ArgumentNullException(nameof(interfaceType));
            }
            if (!interfaceType.IsInterface)
            {
                throw new ArgumentException("interfaceType should point to an interface type definition.");
            }

            return(classEmitter.EmitInstance(handler, new[] { interfaceType }, baseType, null, null, null, baseConstructor,
                                             attributeBuilders));
        }
 public void TestInitialize()
 {
     _context = new ComponentContext();
     _context.RegisterAssembly(typeof(Aop.AssemblyPointer).Assembly);
     _classEmitter = _context.GetComponent <IClassEmitter>();
 }
 public void TestInitialize()
 {
     _context      = new ComponentContext();
     _classEmitter = _context.GetComponent <IClassEmitter>();
 }