ExtenderHelpers.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 / Design / ExtenderHelpers.cs / 1305376 / ExtenderHelpers.cs

                            #pragma warning disable 1634, 1691 
namespace System.Workflow.ComponentModel.Design
{
 	using System;
	using System.IO; 
	using System.Drawing;
	using System.CodeDom; 
 	using System.Diagnostics; 
	using System.Collections;
 	using System.Collections.Generic; 
 	using System.Windows.Forms;
	using System.ComponentModel;
 	using System.Globalization;
	using System.Drawing.Design; 
	using System.Drawing.Imaging;
	using System.Drawing.Drawing2D; 
 	using System.Windows.Forms.Design; 
	using System.ComponentModel.Design;
 	using System.Collections.Specialized; 
 	using System.ComponentModel.Design.Serialization;
	using System.Workflow.ComponentModel.Compiler;
    using System.Workflow.ComponentModel.Serialization;
 	using System.Collections.ObjectModel; 
	using System.Reflection;
    using System.Workflow.ComponentModel.Design; 
    using System.Runtime.Serialization.Formatters.Binary; 

    // 

    #region Class ExtenderHelpers
    internal static class ExtenderHelpers
    { 
        internal static void FilterDependencyProperties(IServiceProvider serviceProvider, Activity activity)
        { 
            IExtenderListService extenderListService = serviceProvider.GetService(typeof(IExtenderListService)) as IExtenderListService; 
            if (extenderListService != null)
            { 
                Dictionary dependencyProperyies = new Dictionary();
                foreach (DependencyProperty property in activity.MetaDependencyProperties)
                    dependencyProperyies.Add(property.Name, property);
 
                List disallowedProperties = new List();
                foreach (IExtenderProvider extenderProvider in extenderListService.GetExtenderProviders()) 
                { 
                    if (!extenderProvider.CanExtend(activity))
                    { 
                        ProvidePropertyAttribute[] propertyAttributes = extenderProvider.GetType().GetCustomAttributes(typeof(ProvidePropertyAttribute), true) as ProvidePropertyAttribute[];
                        foreach (ProvidePropertyAttribute propertyAttribute in propertyAttributes)
                            disallowedProperties.Add(propertyAttribute.PropertyName);
                    } 
                }
 
                foreach (string propertyName in disallowedProperties) 
                {
                    if (dependencyProperyies.ContainsKey(propertyName)) 
                        activity.RemoveProperty(dependencyProperyies[propertyName]);
                }
            }
        } 
    }
    #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