/// <summary> /// Contributes to the specified plan. /// </summary> /// <param name="plan">The plan that is being generated.</param> public void Execute(IPlan plan) { EventInfo[] events = plan.Type.GetEvents(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); foreach (EventInfo evt in events) { IEnumerable <PublishAttribute> attributes = evt.GetAttributes <PublishAttribute>(); foreach (PublishAttribute attribute in attributes) { plan.Add(new PublicationDirective(attribute.Channel, evt)); } } MethodInfo[] methods = plan.Type.GetMethods(BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); foreach (MethodInfo method in methods) { IEnumerable <SubscribeAttribute> attributes = method.GetAttributes <SubscribeAttribute>(); foreach (SubscribeAttribute attribute in attributes) { MethodInjector injector = InjectorFactory.Create(method); plan.Add(new SubscriptionDirective(attribute.Channel, injector, attribute.Thread)); } } }
private static IKernel CreateInjector() { var kernel = InjectorFactory.CreateContainer(); kernel.Get <LogInitializer>().Initialize(LogConfigFileName, Resources.log4net_config); kernel.Bind <CLI>().ToSelf(); return(kernel); }
static void Main() { Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); InjectorFactory injectorFactory = new InjectorFactory(); IFormInjector makeFormInjector = injectorFactory.MakeFormInjector(new[] { new DefaultProcessSelector("explorer", Process.GetCurrentProcess().ProcessName, "devenv", "ApplicationFrameHost", "ScriptedSandbox64") }); MirrorState stateObject = new MirrorState(); stateObject.Active = false; OriginalForm originalForm = new OriginalForm(stateObject, makeFormInjector); makeFormInjector.Inject(ptr => new StartMirroringForm(ptr, stateObject, originalForm.StartMirroring, originalForm.StopMirroring)); Application.Run(originalForm); }
public PreInjectionEvent(InjectorFactory factory, List <Injector> injectors) { InjectorFactory = factory; Injectors = injectors; }
public Expression InjectValues(TA a, Expression <Func <TA, TB, bool> > expression) { return(InjectorFactory.GetInstance().GetInjector <TA, TB>(expression.Body, pe).Inject(a, expression.Body)); }