e79aa3c0ed
Former-commit-id: a2155e9bd80020e49e72e86c44da02a8ac0e57a4
63 lines
2.6 KiB
C#
63 lines
2.6 KiB
C#
#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<string, DependencyProperty> dependencyProperyies = new Dictionary<string, DependencyProperty>();
|
|
foreach (DependencyProperty property in activity.MetaDependencyProperties)
|
|
dependencyProperyies.Add(property.Name, property);
|
|
|
|
List<string> disallowedProperties = new List<string>();
|
|
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
|
|
}
|