示例#1
0
        /// <summary>
        /// Register a callback that will be invoked when the container is configured.
        /// </summary>
        /// <remarks>This is primarily for extending the builder syntax.</remarks>
        /// <param name="configurationCallback">Callback to execute.</param>
        public virtual DeferredCallback RegisterCallback(Action <IComponentRegistry> configurationCallback)
        {
            if (configurationCallback == null)
            {
                throw new ArgumentNullException(nameof(configurationCallback));
            }

            var c = new DeferredCallback(configurationCallback);

            _configurationCallbacks.Add(c);
            return(c);
        }
示例#2
0
        // ReSharper disable once UnusedMember.Local
        private static object CreateCallbackProxy(
            ProxyGenerator proxyGenerator
            , Action <IComponentRegistry> callback
            ,
            // ReSharper disable once UnusedParameter.Global
            // ReSharper disable once UnusedParameter.Local
            DeferredCallback defer
            )

        {
            Logger.Info("Creating deffered callback proxy");
            var x = proxyGenerator.CreateClassProxy(
                typeof(DeferredCallback)
                , new ProxyGenerationOptions(
                    new
                    CallBackHook( )
                    )
                , new object[] { callback }
                , new CallbackInterceptor(proxyGenerator)
                );

            return(x);
        }
示例#3
0
        public void Ctor_SetsId()
        {
            var c = new DeferredCallback(reg => { });

            Assert.NotEqual(Guid.Empty, c.Id);
        }
示例#4
0
        public void Callback_Null()
        {
            var c = new DeferredCallback(reg => { });

            Assert.Throws <ArgumentNullException>(() => { c.Callback = null; });
        }