FeatureManager.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 / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / FeatureManager.cs / 1305376 / FeatureManager.cs

                            //---------------------------------------------------------------- 
// Copyright (c) Microsoft Corporation.  All rights reserved.
//---------------------------------------------------------------

namespace System.Activities.Presentation 
{
    using System.Collections.Generic; 
    using System.Activities.Presentation.Internal.PropertyEditing; 
    using System.Runtime;
 
    class FeatureManager
    {
        EditingContext context;
 
        HashSet initializedTypes;
 
        public FeatureManager(EditingContext context) 
        {
            this.context = context; 
            initializedTypes = new HashSet();
        }

        public void InitializeFeature(Type modelType) 
        {
            Fx.Assert(modelType != null, "Why would anyone initialize a feature that is not associated with a type"); 
 
            if (!initializedTypes.Contains(modelType))
            { 
                initializedTypes.Add(modelType);
                foreach (FeatureAttribute featureAttribute in ExtensibilityAccessor.GetAttributes(modelType))
                {
                    if(typeof(Feature).IsAssignableFrom(featureAttribute.Type)) 
                    {
                        Feature feature = (Feature)Activator.CreateInstance(featureAttribute.Type); 
                        if (feature != null) 
                        {
                            feature.Initialize(this.context, modelType); 
                        }
                    }
                }
                if (modelType.IsGenericType) 
                {
                    InitializeFeature(modelType.GetGenericTypeDefinition()); 
                } 
            }
        } 
    }
}

// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
                        

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