CodeGenerationManager.cs source code in C# .NET

Source code for the .NET framework in C#

                        

Code:

/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / Compiler / CodeGeneration / CodeGenerationManager.cs / 1305376 / CodeGenerationManager.cs

                            namespace System.Workflow.ComponentModel.Compiler 
{
    using System;
    using System.ComponentModel.Design.Serialization;
    using System.Collections; 
    using System.Collections.Generic;
 
    #region CodeGenerationManager 

    public sealed class CodeGenerationManager : IServiceProvider 
    {
        private Hashtable hashOfGenerators = new Hashtable();
        private IServiceProvider serviceProvider = null;
        private ContextStack context = null; 

        public CodeGenerationManager(IServiceProvider serviceProvider) 
        { 
            this.serviceProvider = serviceProvider;
        } 

        public ContextStack Context
        {
            get 
            {
                if (this.context == null) 
                    this.context = new ContextStack(); 

                return this.context; 
            }
        }

        #region IServiceProvider Members 

        public object GetService(Type serviceType) 
        { 
            if (this.serviceProvider == null)
                return null; 

            return this.serviceProvider.GetService(serviceType);
        }
        #endregion 

        public ActivityCodeGenerator[] GetCodeGenerators(Type type) 
        { 
            if (type == null)
                throw new ArgumentNullException("type"); 

            if (this.hashOfGenerators.Contains(type))
 				return ((List)this.hashOfGenerators[type]).ToArray();
 
			List generators = new List();
 
            // Return validators for other types such as Bind, XmolDocument, etc. 
			foreach (ActivityCodeGenerator generator in ComponentDispenser.CreateComponents(type, typeof(ActivityCodeGeneratorAttribute)))
            { 
                generators.Add(generator);
            }

            this.hashOfGenerators[type] = generators; 
            return generators.ToArray();
        } 
    } 
    #endregion
} 

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
// Copyright (c) Microsoft Corporation. All rights reserved.
                        

Link Menu

Network programming in C#, Network Programming in VB.NET, Network Programming in .NET
This book is available now!
Buy at Amazon US or
Buy at Amazon UK