コード例 #1
0
        private void ProcessLateBoundModel(ComponentModel model)
        {
            var commission = new LateBoundCommissionConcerns();

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

#if FEATURE_ISUPPORTINITIALIZE
            if (model.Services.Any(s => s.Is <ISupportInitialize>()))
            {
                model.Lifecycle.Add(SupportInitializeConcern.Instance);
            }
            else
            {
                commission.AddConcern <ISupportInitialize>(SupportInitializeConcern.Instance);
            }
#endif

            if (commission.HasConcerns)
            {
                model.Lifecycle.Add(commission);
            }

            if (model.Services.Any(s => s.Is <IDisposable>()))
            {
                model.Lifecycle.Add(DisposalConcern.Instance);
            }
            else
            {
                var decommission = new LateBoundDecommissionConcerns();
                decommission.AddConcern <IDisposable>(DisposalConcern.Instance);
                model.Lifecycle.Add(decommission);
            }
        }
コード例 #2
0
		private void ProcessLateBoundModel(ComponentModel model)
		{
			var commission = new LateBoundCommissionConcerns();
			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);
			}

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