Exemplo n.º 1
0
 public Module()
 {
     ServiceProvider = new ServiceProvider();
     ServiceProvider.AddServiceFactoryWithNoCaching <PEImage>(() => GetPEInfo());
     ServiceProvider.AddServiceFactory <PEReader>(() => {
         _onChangeEvent = ModuleService.SymbolService.OnChangeEvent.Register(() => ServiceProvider.RemoveService(typeof(PEReader)));
         return(ModuleService.GetPEReader(this));
     });
 }
Exemplo n.º 2
0
 public Module()
 {
     ServiceProvider = new ServiceProvider();
     ServiceProvider.AddServiceFactoryWithNoCaching <PEImage>(() => GetPEInfo());
     ServiceProvider.AddServiceFactory <PEReader>(() => {
         // BUGBUG - this can leak OnChangeEvent handlers
         ModuleService.SymbolService.OnChangeEvent += (object sender, EventArgs e) => ServiceProvider.RemoveService(typeof(PEReader));
         return(ModuleService.GetPEReader(this));
     });
 }
Exemplo n.º 3
0
        public Module(ITarget target)
        {
            ServiceProvider = new ServiceProvider();
            ServiceProvider.AddServiceFactoryWithNoCaching <PEImage>(() => GetPEInfo());

            ServiceProvider.AddServiceFactory <PEReader>(() => ModuleService.GetPEReader(this));
            if (target.OperatingSystem == OSPlatform.Linux)
            {
                ServiceProvider.AddServiceFactory <ELFFile>(() => ModuleService.GetELFFile(this));
            }
            if (target.OperatingSystem == OSPlatform.OSX)
            {
                ServiceProvider.AddServiceFactory <MachOFile>(() => ModuleService.GetMachOFile(this));
            }
            _onChangeEvent = target.Services.GetService <ISymbolService>()?.OnChangeEvent.Register(() => {
                ServiceProvider.RemoveService(typeof(MachOFile));
                ServiceProvider.RemoveService(typeof(ELFFile));
                ServiceProvider.RemoveService(typeof(PEReader));
            });
        }