private void ProcessLateBoundModel(ComponentModel model)
		{
			var commission = new LateBoundConcerns();
			if (model.Services.Any(s => s.Is<IInitializable>()))
			{
				model.Lifecycle.Add(InitializationConcern.Instance);
			}
			else
			{
				commission.AddConcern<IInitializable>(InitializationConcern.Instance);
			}
			if (model.Services.Any(s => s.Is<ISupportInitialize>()))
			{
				model.Lifecycle.Add(SupportInitializeConcern.Instance);
			}
			else
			{
				commission.AddConcern<ISupportInitialize>(SupportInitializeConcern.Instance);
			}
			if (commission.HasConcerns)
			{
				model.Lifecycle.Add(commission as ICommissionConcern);
			}

			if (model.Services.Any(s => s.Is<IDisposable>()))
			{
				model.Lifecycle.Add(DisposalConcern.Instance);
			}
			else
			{
				var decommission = new LateBoundConcerns();
				decommission.AddConcern<IDisposable>(DisposalConcern.Instance);
				model.Lifecycle.Add(decommission as IDecommissionConcern);
			}
		}
		private void ProcessLateBoundModel(ComponentModel model)
		{
			var lateBoundCommissionConcern = new LateBoundConcerns();
			if (model.Implementation.Is<IInitializable>())
			{
				model.Lifecycle.Add(InitializationConcern.Instance);
			}
			else
			{
				lateBoundCommissionConcern.AddConcern<IInitializable>(InitializationConcern.Instance);
			}
#if (!SILVERLIGHT)
			if (model.Implementation.Is<ISupportInitialize>())
			{
				model.Lifecycle.Add(SupportInitializeConcern.Instance);
			}
			else
			{
				lateBoundCommissionConcern.AddConcern<ISupportInitialize>(SupportInitializeConcern.Instance);
			}
#endif
			if (model.Implementation.Is<IDisposable>())
			{
				model.Lifecycle.Add(DisposalConcern.Instance);
			}
			else
			{
				var decommission = new LateBoundConcerns();
				decommission.AddConcern<IDisposable>(DisposalConcern.Instance);
				model.Lifecycle.Add(decommission as IDecommissionConcern);
			}
			if (lateBoundCommissionConcern.HasConcerns)
			{
				model.Lifecycle.Add(lateBoundCommissionConcern as ICommissionConcern);
			}
		}
Esempio n. 3
0
        private void ProcessLateBoundModel(ComponentModel model)
        {
            var commission = new LateBoundConcerns();

            if (model.Services.Any(s => s.Is <IInitializable>()))
            {
                model.Lifecycle.Add(InitializationConcern.Instance);
            }
            else
            {
                commission.AddConcern <IInitializable>(InitializationConcern.Instance);
            }
            if (model.Services.Any(s => s.Is <ISupportInitialize>()))
            {
                model.Lifecycle.Add(SupportInitializeConcern.Instance);
            }
            else
            {
                commission.AddConcern <ISupportInitialize>(SupportInitializeConcern.Instance);
            }
            if (commission.HasConcerns)
            {
                model.Lifecycle.Add(commission as ICommissionConcern);
            }

            if (model.Services.Any(s => s.Is <IDisposable>()))
            {
                model.Lifecycle.Add(DisposalConcern.Instance);
            }
            else
            {
                var decommission = new LateBoundConcerns();
                decommission.AddConcern <IDisposable>(DisposalConcern.Instance);
                model.Lifecycle.Add(decommission as IDecommissionConcern);
            }
        }