public void Load <TObject>(TObject objectToLoad) where TObject : class, ILazyLoadable { if (objectToLoad == null || objectToLoad.IsLoaded) { return; } if (objectToLoad.IsAnImplementationOf <ISimulationComparison>()) { _simulationComparisonContentLoader.LoadContentFor(objectToLoad.DowncastTo <ISimulationComparison>()); } else if (objectToLoad.IsAnImplementationOf <ParameterIdentification>()) { _parameterIdentificationContentLoader.LoadContentFor(objectToLoad.DowncastTo <ParameterIdentification>()); } else if (objectToLoad.IsAnImplementationOf <SensitivityAnalysis>()) { _sensitivityAnalysisContentLoader.LoadContentFor(objectToLoad.DowncastTo <SensitivityAnalysis>()); } else if (objectToLoad.IsAnImplementationOf <IObjectBase>()) { loadObjectBase(objectToLoad as IObjectBase); } else { return; } objectToLoad.IsLoaded = true; }