Sdl.Web.Tridion.Mapping.ModelBuilderPipeline.ModelBuilderPipeline C# (CSharp) Method

ModelBuilderPipeline() static private method

Initializes the Model Builder Pipeline (class constructor).
static private ModelBuilderPipeline ( ) : System
return System
        static ModelBuilderPipeline()
        {
            using (new Tracer())
            {
                IList<IModelBuilder> modelBuilders = new List<IModelBuilder>();
                try
                {
                    ModelBuilderPipelineConfiguration config = (ModelBuilderPipelineConfiguration)ConfigurationManager.GetSection(ModelBuilderPipelineConfiguration.SectionName);
                    if (config != null)
                    {
                        foreach (ModelBuilderSettings modelBuilderSettings in config.ModelBuilders)
                        {
                            Type modelBuilderType = Type.GetType(modelBuilderSettings.Type, throwOnError: true, ignoreCase: true);
                            IModelBuilder modelBuilder = (IModelBuilder)Activator.CreateInstance(modelBuilderType);
                            modelBuilders.Add(modelBuilder);
                        }
                    }
                }
                catch (Exception ex)
                {
                    // Throwing exceptions from a class constructor results in rather cryptic error messages, so we handle the exception here.
                    Log.Error(ex);
                    Log.Warn("An error occurred while initializing the Model Builder Pipeline. Using the Default Model Builder.");
                    modelBuilders.Clear();
                }

                if (modelBuilders.Count == 0)
                {
                    modelBuilders.Add(new DefaultModelBuilder());
                }

                ModelBuilders = modelBuilders;
            }
        }