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); }
public CommandsGenerator( IClassEmitter emitter, ISettingsInterpreter settingsInterpreter, RibbonPanel ribbonPanel) { _emitter = emitter; _settingsInterpreter = settingsInterpreter; _ribbonPanel = ribbonPanel; }
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(); }
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); }
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>(); }