Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / Xaml / ActivityBuilderHelper.cs / 1407647 / ActivityBuilderHelper.cs
//----------------------------------------------------------------
// Copyright (c) Microsoft Corporation. All rights reserved.
//---------------------------------------------------------------
namespace System.Activities.Presentation.Xaml
{
using System.Activities.Debugger;
using System.Activities.Presentation.Model;
using System.Collections.Generic;
using System.ComponentModel;
using System.Runtime;
using System.Windows.Markup;
internal class ActivityBuilderHelper
{
internal static bool IsActivityBuilderType(ModelItem modelItem)
{
if (null == modelItem)
{
throw FxTrace.Exception.AsError(new ArgumentNullException("modelItem"));
}
return modelItem.ItemType.IsAssignableFrom(typeof(ActivityBuilder));
}
internal static List GetVariables(object input)
{
if (null == input)
{
throw FxTrace.Exception.AsError(new ArgumentNullException("input"));
}
ModelItem astAsModelItem = input as ModelItem;
ActivityBuilder instance = input as ActivityBuilder;
if (null != astAsModelItem)
{
if (!astAsModelItem.ItemType.IsAssignableFrom(typeof(ActivityBuilder)))
{
throw FxTrace.Exception.AsError(new InvalidCastException(astAsModelItem.ItemType.FullName));
}
instance = (ActivityBuilder)astAsModelItem.GetCurrentValue();
}
else if (null == instance)
{
throw FxTrace.Exception.AsError(new InvalidCastException(input.GetType().FullName));
}
List variables = new List();
foreach (DynamicActivityProperty property in instance.Properties)
{
if (property != null)
{
Variable autoVariable = GetVariableFromProperty(property);
if (autoVariable != null)
{
variables.Add(autoVariable);
}
}
}
return variables;
}
internal static Variable GetVariableFromProperty(DynamicActivityProperty property)
{
Type variableType = null;
Variable autoVariable = null;
if (property.Type != null)
{
Type propertyType = property.Type;
// if the property is an Argument create a variable of type T
if (propertyType != null && typeof(Argument).IsAssignableFrom(propertyType))
{
if (propertyType.IsGenericType)
{
variableType = propertyType.GetGenericArguments()[0];
}
else
{
variableType = typeof(object);
}
}
}
if (variableType != null)
{
autoVariable = Variable.Create(property.Name, variableType, VariableModifiers.None);
Argument argument = property.Value as Argument;
if (argument != null)
{
autoVariable.Default = argument.Expression;
}
}
return autoVariable;
}
}
}
// File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MatchingStyle.cs
- WorkflowOperationErrorHandler.cs
- EntityParameter.cs
- RSAProtectedConfigurationProvider.cs
- SqlDataAdapter.cs
- ParallelTimeline.cs
- TimeSpanValidator.cs
- Socket.cs
- externdll.cs
- ArithmeticException.cs
- TransportOutputChannel.cs
- WebException.cs
- ValidationSummaryDesigner.cs
- ApplicationException.cs
- TextServicesLoader.cs
- CngAlgorithm.cs
- TypeContext.cs
- DtdParser.cs
- DLinqColumnProvider.cs
- HtmlTableRow.cs
- InputEventArgs.cs
- ToolStripDropDownMenu.cs
- StylusPlugin.cs
- _KerberosClient.cs
- WebPartUtil.cs
- PropertyOverridesDialog.cs
- DocumentCollection.cs
- SmtpCommands.cs
- EditingMode.cs
- WebHttpBehavior.cs
- ReadOnlyDataSource.cs
- SettingsPropertyValue.cs
- StructuralObject.cs
- InteropBitmapSource.cs
- Underline.cs
- XmlSchemaComplexContentExtension.cs
- SendMailErrorEventArgs.cs
- _Connection.cs
- WebPartConnectionsCloseVerb.cs
- WebPartConnectionsCancelVerb.cs
- columnmapkeybuilder.cs
- TreeBuilderBamlTranslator.cs
- XpsS0ValidatingLoader.cs
- BitmapEffectCollection.cs
- ResolveMatchesCD1.cs
- AssemblyCollection.cs
- Permission.cs
- RichTextBoxDesigner.cs
- ProxySimple.cs
- HostProtectionException.cs
- WindowsGraphics2.cs
- StaticSiteMapProvider.cs
- ScriptResourceInfo.cs
- ResourceReferenceExpression.cs
- DispatcherFrame.cs
- counter.cs
- LogEntryHeaderSerializer.cs
- BaseDataBoundControl.cs
- XpsImage.cs
- x509utils.cs
- DataGridView.cs
- Label.cs
- TextDecoration.cs
- XmlLinkedNode.cs
- TypeBuilderInstantiation.cs
- LinkedResource.cs
- SqlCrossApplyToCrossJoin.cs
- ClientEventManager.cs
- Exceptions.cs
- TypeConverterAttribute.cs
- StyleBamlRecordReader.cs
- WeakReferenceEnumerator.cs
- UndirectedGraph.cs
- AttributedMetaModel.cs
- Rijndael.cs
- ListParaClient.cs
- ConstantSlot.cs
- AutoResetEvent.cs
- CorrelationInitializer.cs
- BinHexEncoder.cs
- FlowDocumentPaginator.cs
- MenuItemBindingCollection.cs
- DuplicateWaitObjectException.cs
- BuildManager.cs
- DataSourceXmlSerializationAttribute.cs
- Matrix3DConverter.cs
- DecimalAnimation.cs
- Keyboard.cs
- FormsAuthenticationUserCollection.cs
- CharEntityEncoderFallback.cs
- ExcCanonicalXml.cs
- ConfigurationManagerInternal.cs
- DataSourceHelper.cs
- XmlException.cs
- SecurityContextSecurityTokenParameters.cs
- XmlEncodedRawTextWriter.cs
- ChangeDirector.cs
- Executor.cs
- RecognizedAudio.cs
- TraceProvider.cs