public KasbahContentMiddleware(RequestDelegate next, ILogger <KasbahRouterMiddleware> log, ISpaPrerenderer prerenderer, ComponentRegistry componentRegistry)
 {
     _next              = next;
     _log               = log;
     _prerenderer       = prerenderer;
     _componentRegistry = componentRegistry;
 }
示例#2
0
        static void RegisterBaseGates()
        {
            //base gates
            var xorShape = PrefabBuilder.Cube
                           .WithIO(CubeSide.Top, SideType.Input)
                           .WithIO(CubeSide.Back, SideType.Input)
                           .WithIO(CubeSide.Front, SideType.Output)
                           .WithColor(new UnityEngine.Color(0.280f, 0.161f, 0.586f));
            var orShape = PrefabBuilder.Cube
                          .WithIO(CubeSide.Top, SideType.Input)
                          .WithIO(CubeSide.Back, SideType.Input)
                          .WithIO(CubeSide.Front, SideType.Output)
                          .WithColor(new UnityEngine.Color(0.280f, 0.561f, 0.286f));
            var andShape = PrefabBuilder.Cube
                           .WithIO(CubeSide.Top, SideType.Input)
                           .WithIO(CubeSide.Back, SideType.Input)
                           .WithIO(CubeSide.Front, SideType.Output)
                           .WithColor(new UnityEngine.Color(0.580f, 0.161f, 0.286f));
            //false/true
            var falseTrueShape = PrefabBuilder.Cube
                                 .WithIO(CubeSide.Front, SideType.Output);

            ComponentRegistry.CreateNew <TrueHandler>("truegate", "TRUE", falseTrueShape);
            ComponentRegistry.CreateNew <FalseHandler>("falsegate", "FALSE", falseTrueShape);
            ComponentRegistry.CreateNew <XORHandler>("xor", "XOR", xorShape);
            ComponentRegistry.CreateNew <ORHandler>("or", "OR", orShape);
            ComponentRegistry.CreateNew <ANDHandler>("and", "AND", andShape);
        }
        private void AddFrameworkServices(ComponentRegistry componentRegistry, IProjectContext projectInformation)
        {
            //Ordering of services is important here

            var applicationInfo = new ApplicationInfo(
                projectInformation.ProjectName,
                Path.GetDirectoryName(projectInformation.ProjectFullPath));

            componentRegistry.RegisterComponent <IProjectContext>(projectInformation);

            _codeGenerationContext = new CodeGenerationContext(_codeGenArguments, projectInformation.ProjectFullPath);
            componentRegistry.RegisterComponent <CodeGenerationContext>(_codeGenerationContext);

            componentRegistry.RegisterComponent <IApplicationInfo>(applicationInfo);
            componentRegistry.RegisterComponent <ICodeGenAssemblyLoadContext>(new DefaultAssemblyLoadContext());
            componentRegistry.RegisterComponent <WorkspaceManager>(WorkspaceManager.Create(projectInformation));

            componentRegistry.RegisterComponent <IFileSystem>(DefaultFileSystem.Instance);
            componentRegistry.RegisterComponent <ILogger>(_logger);

            componentRegistry.RegisterComponentWithDependencies <ICodeGenerationAssemblyProvider, CodeGenerationAssemblyProvider>();
            componentRegistry.RegisterComponentWithDependencies <ITemplateLocator, TemplateLocator>();

            componentRegistry.RegisterComponentWithDependencies <CodeGenCommand, CodeGenCommand>();
        }
示例#4
0
        static void RegisterMemComponents()
        {
            //memory components
            var dffShape = PrefabBuilder.Cube                       //D-flip-flop
                           .WithIO(CubeSide.Left, SideType.Input)   //data
                           .WithIO(CubeSide.Top, SideType.Input)    //write
                           .WithIO(CubeSide.Front, SideType.Output) //out
                           .WithColor(new UnityEngine.Color(0.827f, 0.467f, 0.0f));
            var tffShape = PrefabBuilder.Cube                       //T-flip-flop
                           .WithIO(CubeSide.Top, SideType.Input)    //input
                           .WithIO(CubeSide.Front, SideType.Output)
                           .WithColor(new UnityEngine.Color(0.467f, 0.827f, 0.0f));
            var rsShape = PrefabBuilder.Cube                     //RS-latch
                          .WithIO(CubeSide.Back, SideType.Input) //set
                          .WithIO(CubeSide.Top, SideType.Input)  //reset
                          .WithIO(CubeSide.Front, SideType.Output)
                          .WithColor(new UnityEngine.Color(0.467f, 0.0f, 0.827f));
            var regShape = PrefabBuilder.Cube                       //Register (DFF + read)
                           .WithIO(CubeSide.Left, SideType.Input)   //data
                           .WithIO(CubeSide.Top, SideType.Input)    //write
                           .WithIO(CubeSide.Back, SideType.Input)   //read
                           .WithIO(CubeSide.Front, SideType.Output) //output
                           .WithColor(new UnityEngine.Color(0.827f, 0.467f, 0.0f));

            ComponentRegistry.CreateNew <DFFHandler>("dff", "D-Flip-Flop", dffShape);
            ComponentRegistry.CreateNew <TFFHandler>("tff", "T-Flip-Flop", tffShape);
            ComponentRegistry.CreateNew <RSHandler>("rsnor", "RS-Latch", rsShape);
            ComponentRegistry.CreateNew <RegHandler>("reg", "Register", regShape);
        }
示例#5
0
        public void WhenARegistrationSourceQueriesForTheSameService_ItIsNotRecursivelyQueried()
        {
            var registry = new ComponentRegistry();

            registry.AddRegistrationSource(new RecursiveRegistrationSource());
            Assert.False(registry.IsRegistered(new UniqueService()));
        }
 public ContentController(ContentService contentService, TypeRegistry typeRegistry, ComponentRegistry componentRegistry, SiteRegistry siteRegistry)
 {
     _contentService    = contentService;
     _typeRegistry      = typeRegistry;
     _componentRegistry = componentRegistry;
     _siteRegistry      = siteRegistry;
 }
示例#7
0
        public RejoinScreenController(AutoController scene)
        {
            this.scene = scene;
            ComponentRegistry guiComps = scene.Components.Get <ComponentRegistry>((int)ComponentKeys.LobbyGUIMessages);

            messageText = new SubscribableObject <string>("");
            guiComps.Register((int)GUICompKeys.RejoinText, messageText);

            Message backButtonPressed = new Message();

            guiComps.Register((int)GUICompKeys.RejoinCancelButton, backButtonPressed);
            backButtonPressed.Subscribe(new SimpleListener(OnBackButtonPressed));

            choices = scene.Game.Components.Get <LobbyChoices>((int)ComponentKeys.LobbyChoices);

            screen = scene.Components.Get <StateMachine>((int)ComponentKeys.LobbyScreen);
            screen.EnterStateMessenger.Subscribe(new SimpleListener <int>((s) => OnScreenEnter()));

            state = new StateMachine(0);
            state.EnterStateMessenger.Subscribe(new SimpleListener <int>((s) => RefreshText()));

            connHelper = scene.Game.Components.Get <ConnectionHelper>((int)ComponentKeys.ConnectionHelper);
            scene.ActivatableList.Add(new ListenerJanitor <IListener <int> >(
                                          connHelper.Connection.EnterStateMessenger,
                                          new SimpleListener <int>((s) => OnConnectionChange())));
        }
示例#8
0
        public void WhenRegistrationIsMade_ComponentRegisteredEventFired()
        {
            object eventSender = null;
            ComponentRegisteredEventArgs args = null;
            var eventCount = 0;

            var registry = new ComponentRegistry();

            registry.Registered += (sender, e) =>
            {
                eventSender = sender;
                args        = e;
                ++eventCount;
            };

            var registration = Factory.CreateSingletonObjectRegistration();

            registry.Register(registration);

            Assert.AreEqual(1, eventCount);
            Assert.IsNotNull(eventSender);
            Assert.AreSame(registry, eventSender);
            Assert.IsNotNull(args);
            Assert.AreSame(registry, args.ComponentRegistry);
            Assert.AreSame(registration, args.ComponentRegistration);
        }
示例#9
0
        public void WhenNoImplementers_TryGetRegistrationReturnsFalse()
        {
            var registry = new ComponentRegistry();
            IComponentRegistration unused;

            Assert.IsFalse(registry.TryGetRegistration(new TypedService(typeof(object)), out unused));
        }
 protected override void Handle(JumpToStateRequest aRequest)
 {
     Logger.LogDebug($"{GetType().FullName}");
     Logger.LogDebug($"{aRequest.JsonRequest.Payload.State}");
     Store.LoadStatesFromJson(aRequest.JsonRequest.Payload.State);
     ComponentRegistry.ReRenderAll();
 }
示例#11
0
        public void LoadsRegistrations()
        {
            var cr = new ComponentRegistry();

            new ObjectModule().Configure(cr);
            Assert.True(cr.IsRegistered(new TypedService(typeof(object))));
        }
示例#12
0
        public LobbyScene(ModdableChessGame game) : base(game)
        {
            ComponentRegistry guiMessages = new ComponentRegistry();

            Components.Register((int)ComponentKeys.LobbyGUIMessages, guiMessages);

            screen = new StateMachine(0);
            Components.Register((int)ComponentKeys.LobbyScreen, screen);

            new HostOrClientScreenManager(this);
            new SetupHostScreenManager(this);
            new LobbyInitializedCheck(this);
            new TurnOrderSelectionController(this);
            new Mods.ShallowModLoader(this);
            new ModListController(this);
            new ReadyButtonController(this);
            new OtherPlayerReadyTextController(this);
            new LobbyExitController(this);
            new LobbyBackButton(this);
            new RejoinScreenController(this);

            ServerInformation server = Game.Components.Get <ServerInformation>((int)ComponentKeys.ServerInformation);

            server.Connection.EnterStateMessenger.Subscribe(new SimpleListener <int>(OnServerConnectionChange));
        }
示例#13
0
        public void LoadComponents()
        {
            Logger.Info("Loading components from database...");
            lock (Components)
            {
                Components.Clear();
                foreach (var document in RemoteComponentsCollection.FindAsync(Builders <BsonDocument> .Filter.Empty).Result.ToEnumerable())
                {
                    Type componentType = ComponentRegistry.GetComponentTypeFromName(document["type"].AsString);

                    if (!document.Contains("uuid"))
                    {
                        document["uuid"] = Guid.NewGuid().ToString();
                        RemoteComponentsCollection.ReplaceOne(Builders <BsonDocument> .Filter.Eq("_id", document["_id"]), document, new ReplaceOptions {
                            IsUpsert = false
                        });
                    }

                    Components.Add((ComponentBase)Activator.CreateInstance(componentType, new object[] { RemoteComponentsCollection, document["uuid"].AsString }));
                    var component = Components.Last();

                    component.Core = this;

                    Logger.Info($"Found component '{component}'.");

                    if (Running)
                    {
                        component.Init();
                    }
                }
            }
        }
        public ReadyButtonController(AutoController scene)
        {
            ComponentRegistry guiComps = scene.Components.Get <ComponentRegistry>((int)ComponentKeys.LobbyGUIMessages);

            buttonEnabled = new SubscribableBool(true);
            guiComps.Register((int)GUICompKeys.ReadyBtnEnabled, buttonEnabled);
            buttonLabel = new SubscribableObject <string>("");
            guiComps.Register((int)GUICompKeys.ReadyBtnLabel, buttonLabel);
            Message buttonClick = new Message();

            guiComps.Register((int)GUICompKeys.ReadyBtnClicked, buttonClick);
            buttonClick.Subscribe(new SimpleListener(OnButtonClick));

            selectedMod = scene.Components.GetOrRegister <SubscribableObject <string> >
                              ((int)ComponentKeys.LobbyModSelected, SubscribableObject <string> .Create);
            selectedMod.Subscribe(new SimpleListener <string>((m) => {
                RefreshButton();
            }));
            readyStatus = scene.Components.GetOrRegister <SubscribableBool>((int)ComponentKeys.LobbyReadyStatus, SubscribableBool.Create);
            readyStatus.Subscribe(new SimpleListener <bool>((v) => RefreshButton()));

            StateMachine screen = scene.Components.Get <StateMachine>((int)ComponentKeys.LobbyScreen);

            screen.EnterStateMessenger.Subscribe(new SimpleListener <int>((s) => {
                isHost = s == (int)LobbyScreen.HostGamePrefs;
                if (s == (int)LobbyScreen.HostGamePrefs || s == (int)LobbyScreen.ClientGamePrefs)
                {
                    ScreenEnter();
                }
            }));
        }
 public KasbahRouterMiddleware(RequestDelegate next, ILogger <KasbahRouterMiddleware> log, ComponentRegistry componentRegistry, IMemoryCache cache, IServiceProvider serviceProvider)
 {
     _next = next;
     _log  = log;
     _componentRegistry = componentRegistry;
     _cache             = cache;
     _serviceProvider   = serviceProvider;
 }
示例#16
0
 internal void CreateRams()
 {
     CreateRam <Ram1B>(1);
     CreateRam <Ram4B>(4);
     CreateRam <Ram8B>(8);
     CreateRam <Ram12B>(12);
     CreateRam <Ram16B>(16);
     ComponentRegistry.CreateNew <Ram32B>("ram32b", "RAM 32 Bit", BuilderHelper.CreateMultiIOChip(24, 1, 32, 32, false, false, true, false, "A", "Write", "O", "D", false, true, false, false));
 }
示例#17
0
        public ComponentRegistryWebApiDependencyResolver(ComponentRegistry container)
        {
            if (container == null)
            {
                throw new ArgumentNullException(nameof(container));
            }

            _container = container;
        }
示例#18
0
        public void WhenNoImplementationsRegistered_RegistrationsForServiceIncludeDynamicSources()
        {
            var registry = new ComponentRegistry();

            registry.AddRegistrationSource(new ObjectRegistrationSource());
            Assert.IsFalse(registry.Registrations.Where(
                               r => r.Services.Contains(new TypedService(typeof(object)))).Any());
            Assert.AreEqual(1, registry.RegistrationsFor(new TypedService(typeof(object))).Count());
        }
示例#19
0
        protected override void Handle(JumpToStateRequest request)
        {
            Logger.LogDebug($"{DebugName}: Handling request: {request.GetType()}");
            Logger.LogDebug($"{DebugName}: Loading state: {request.JsonRequest.Payload.State}");

            Store.LoadStatesFromJson(request.JsonRequest.Payload.State);

            ComponentRegistry.ReRenderAll();
        }
示例#20
0
        public void WhenNoImplementerIsDirectlyRegistered_RegistrationCanBeProvidedDynamically()
        {
            var registry = new ComponentRegistry();

            registry.AddRegistrationSource(new ObjectRegistrationSource());
            IComponentRegistration registration;

            Assert.IsTrue(registry.TryGetRegistration(new TypedService(typeof(object)), out registration));
        }
示例#21
0
        public void ConstructorSetsProperties()
        {
            var registry     = new ComponentRegistry();
            var registration = Factory.CreateSingletonObjectRegistration();
            var args         = new ComponentRegisteredEventArgs(registry, registration);

            Assert.Same(registry, args.ComponentRegistry);
            Assert.Same(registration, args.ComponentRegistration);
        }
示例#22
0
        public static void Register()
        {
            var prefab = PrefabBuilder
                         .Cube
                         .WithSide(CubeSide.Top, SideType.Output)
                         .WithColor(new Color(0.7f, 0.7f, 1))
                         .WithComponent <InteractNetwork>();

            ComponentRegistry.CreateNew <Receiver>(WirelessMod.WirelessMod.Instance, "receiver", "Receiver", prefab);
        }
示例#23
0
        public static void Register()
        {
            var b = PrefabBuilder
                    .Cube
                    .WithIO(CubeSide.Front, SideType.Output)
                    .WithColor(Color.cyan)
                    .WithComponent <KeyInteract>();

            ComponentRegistry.CreateNew <KeyButton>("keybutton", "Key Button", b);
        }
    public override void BeforePatch()
    {
        ComponentRegistry.CreateNew(this, "LargePanelButton", "Large Panel Button", CreatePanelButtonOfSize(3, 2));
        ComponentRegistry.CreateNew(this, "GiantPanelButton", "Giant Panel Button", CreatePanelButtonOfSize(3, 3));
        ComponentRegistry.CreateNew(this, "EnormousPanelButton", "Enormous Panel Button", CreatePanelButtonOfSize(15, 2));

        // the world is not ready
        // ComponentRegistry.CreateNew("CollosalPanelButton", "Collosal Panel Button", CreatePanelButtonOfSize(51, 51));
        // ComponentRegistry.CreateNew("TitanicPanelButton", "Titanic Panel Button", CreatePanelButtonOfSize(401, 601));
    }
示例#25
0
        public static void Register()
        {
            var b = PrefabBuilder
                    .Cube
                    .WithIO(CubeSide.Top, SideType.Input)
                    .WithIO(CubeSide.Front, SideType.Output)
                    .WithColor(new Color(0.409803922f, 0.647058824f, 0.968627451f));

            ComponentRegistry.CreateNew <TFlipFlop>("tflipflop", "T Flip-Flop", b);
        }
示例#26
0
        static void RegisterCoolGates()
        {
            //cool misc gates
            var randomizerShape = PrefabBuilder.Cube
                                  .WithIO(CubeSide.Top, SideType.Input)
                                  .WithIO(CubeSide.Front, SideType.Output)
                                  .WithColor(new UnityEngine.Color(1.0f, 0.553f, 0.796f));

            ComponentRegistry.CreateNew <RandomizerHandler>("randomizer", "Randomizer", randomizerShape);
        }
 public DefaultContainer()
 {
     _extensions = new List<IContainerExtension>();
     _componetnts = new ComponentRegistry();
     _exports = new ExportRegistry();
     _exportproviders = new ExportProviderRegistry();
     _exportproviders.ExportsChanged += ExportsChanged;
     Register(new DefaultExtension());
     _buildEngine = new BuildEngine(this, _exportproviders, _componetnts);
 }
示例#28
0
        public static void Register()
        {
            var build = PrefabBuilder.Cube
                        .WithSide(CubeSide.Top, SideType.Input)
                        .WithSide(CubeSide.Front, SideType.Input)
                        .WithSide(CubeSide.Back, SideType.Output)
                        .WithColor(new Color(0, 1, 0));

            ComponentRegistry.CreateNew <CpuComponent>(this, "cpu", "CPU", build);
        }
示例#29
0
        public static void Register()
        {
            var prefab = PrefabBuilder
                         .Cube
                         .WithSide(CubeSide.Top, SideType.Input)
                         .WithColor(new Color(1, 0.7f, 0.7f))
                         .WithComponent <InteractNetwork>();

            ComponentRegistry.CreateNew <Transmitter>(WirelessMod.WirelessMod.Instance, "transmitter", "Transmitter", prefab);
        }
示例#30
0
        public void AdaptingAGeneratedServiceYieldsASingleAdapter()
        {
            var registry = new ComponentRegistry();

            registry.AddRegistrationSource(new MetaRegistrationSource());
            registry.AddRegistrationSource(new CollectionRegistrationSource());
            var metaCollections = registry.RegistrationsFor(
                new TypedService(typeof(Meta <IEnumerable <object> >)));

            Assert.AreEqual(1, metaCollections.Count());
        }
示例#31
0
        public static void Register()
        {
            var b = PrefabBuilder
                    .Cube
                    .WithIO(CubeSide.Back, SideType.Input)
                    .WithIO(CubeSide.Top, SideType.Input)
                    .WithIO(CubeSide.Front, SideType.Output)
                    .WithColor(new Color(0.2f, 0.2f, 0.5f));

            ComponentRegistry.CreateNew <GateXNOR>("xnorgate", "XNOR Gate", b);
        }
        /// <summary>
        ///     Initializes a new instance of the <see cref="BuildEngine" /> class.
        ///     Initialisiert eine neue Instanz der <see cref="BuildEngine" /> Klasse.
        ///     Initializes a new instance of the <see cref="BuildEngine" /> class.
        /// </summary>
        /// <param name="container">
        ///     The container.
        /// </param>
        /// <param name="providerRegistry">
        ///     The provider registry.
        /// </param>
        /// <param name="componentRegistry">
        ///     The component registry.
        /// </param>
        public BuildEngine(
            IContainer container,
            ExportProviderRegistry providerRegistry,
            ComponentRegistry componentRegistry)
        {
            Contract.Requires<ArgumentNullException>(container != null, "container");
            Contract.Requires<ArgumentNullException>(providerRegistry != null, "providerRegistry");
            Contract.Requires<ArgumentNullException>(componentRegistry != null, "componentRegistry");

            this.container = container;
            _componentRegistry = componentRegistry;
            _factory =
                componentRegistry.GetAll<IExportFactory>()
                                 .First(fac => fac.TechnologyName == AopConstants.DefaultExportFactoryName)
                                 .CastObj<DefaultExportFactory>();
            pipeline = new Pipeline(componentRegistry);
            rebuildManager = new RebuildManager();
            providerRegistry.ExportsChanged += ExportsChanged;
        }
        /// <summary>
        ///     The initialize.
        /// </summary>
        /// <param name="components">
        ///     The components.
        /// </param>
        public void Initialize(ComponentRegistry components)
        {
            components.Register<IMetadataFactory, MetadataFactory>();
            components.Register<IImportSelectorChain, ImportSelectorChain>();
            components.Register<IExportFactory, DefaultExportFactory>(DefaultExportFactory.Factory);
            components.Register<ICache, BuildCache>();
            components.Register<IEventManager, EventManager>();
            components.Register<IProxyService, ProxyService>();

            components.Register<IStrategy, CacheStrategy>();
            components.Register<IStrategy, LiftimeStrategy>();
            components.Register<IStrategy, InstantiationStrategy>();
            components.Register<IStrategy, InterceptionStrategy>();
            components.Register<IStrategy, InjectionStrategy>();
            components.Register<IStrategy, NodifyBuildCompledStrategy>();

            var chain = components.Get<IImportSelectorChain>();
            chain.Register(new FieldImportSelector());
            chain.Register(new PropertyImportSelector());
            chain.Register(new MethodImportSelector());
            chain.Register(new EventImportSelector());
        }
 /// <summary>
 ///     The initialize.
 /// </summary>
 /// <param name="components">
 ///     The components.
 /// </param>
 public void Initialize(ComponentRegistry components)
 {
     _chain = components.Get<IImportSelectorChain>();
 }
 /// <summary>
 ///     The initialize.
 /// </summary>
 /// <param name="components">
 ///     The components.
 /// </param>
 public override void Initialize(ComponentRegistry components)
 {
     _eventManager = components.Get<IEventManager>();
     _factory = components.Get<IMetadataFactory>();
     _interceptorFactories = components.GetAll<IImportInterceptorFactory>().ToArray();
 }
 /// <summary>
 ///     The initialize.
 /// </summary>
 /// <param name="components">
 ///     The components.
 /// </param>
 public override void Initialize(ComponentRegistry components)
 {
     _service = components.Get<IProxyService>();
 }
 /// <summary>
 ///     The initialize.
 /// </summary>
 /// <param name="components">
 ///     The components.
 /// </param>
 public override void Initialize(ComponentRegistry components)
 {
     _generator = components.Get<IProxyService>().GenericGenerator;
 }
        /// <summary>
        ///     The initialize.
        /// </summary>
        /// <param name="components">
        ///     The components.
        /// </param>
        /// <exception cref="NotImplementedException">
        /// </exception>
        public void Initialize(ComponentRegistry components)
        {
            Contract.Requires<ArgumentNullException>(components != null, "components");

            throw new NotImplementedException();
        }
 /// <summary>
 ///     The initialize.
 /// </summary>
 /// <param name="components">
 ///     The components.
 /// </param>
 /// <exception cref="NotImplementedException">
 /// </exception>
 public void Initialize(ComponentRegistry components)
 {
     throw new NotImplementedException();
 }
        /// <summary>
        ///     Initializes a new instance of the <see cref="Pipeline" /> class.
        ///     Initialisiert eine neue Instanz der <see cref="Pipeline" /> Klasse.
        ///     Initializes a new instance of the <see cref="Pipeline" /> class.
        /// </summary>
        /// <param name="registry">
        ///     The registry.
        /// </param>
        public Pipeline(ComponentRegistry registry)
        {
            Contract.Requires<ArgumentNullException>(registry != null, "registry");

            this.registry = registry;
        }
 /// <summary>
 ///     The initialize.
 /// </summary>
 /// <param name="components">
 ///     The components.
 /// </param>
 public void Initialize(ComponentRegistry components)
 {
     Contract.Requires<ArgumentNullException>(components != null, "arg");
 }
 /// <summary>
 ///     The initialize.
 /// </summary>
 /// <param name="components">
 ///     The components.
 /// </param>
 public override void Initialize(ComponentRegistry components)
 {
     _cache = components.Get<ICache>();
 }
 /// <summary>
 ///     The initialize.
 /// </summary>
 /// <param name="components">
 ///     The components.
 /// </param>
 public void Initialize(ComponentRegistry components)
 {
 }
 public void Initialize(ComponentRegistry components)
 {
     components.Register<IProxyService, InternalProxyService>(true);
 }