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); } }
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); } }