Code:
/ 4.0 / 4.0 / 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; HashSetinitializedTypes; 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. //---------------------------------------------------------------- // 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

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- XmlSchemaSimpleTypeUnion.cs
- Timeline.cs
- SecurityUniqueId.cs
- SecondaryViewProvider.cs
- SlotInfo.cs
- BaseDataBoundControl.cs
- MarkupObject.cs
- ReadOnlyState.cs
- ChannelTraceRecord.cs
- StyleModeStack.cs
- PropertySourceInfo.cs
- DataGridTablesFactory.cs
- AlignmentYValidation.cs
- TextEncodedRawTextWriter.cs
- PixelFormat.cs
- SHA512.cs
- TextBoxRenderer.cs
- ByteStack.cs
- TableCellCollection.cs
- GiveFeedbackEvent.cs
- OleDbConnectionInternal.cs
- Accessors.cs
- X509Utils.cs
- StreamResourceInfo.cs
- ActivityBindForm.Designer.cs
- StringConverter.cs
- XPathConvert.cs
- SqlNodeAnnotations.cs
- Polygon.cs
- HtmlTableRowCollection.cs
- MouseCaptureWithinProperty.cs
- DataSysAttribute.cs
- recordstatescratchpad.cs
- Style.cs
- Formatter.cs
- FormViewUpdateEventArgs.cs
- NameValueFileSectionHandler.cs
- CodeDelegateInvokeExpression.cs
- StateDesigner.Layouts.cs
- ContentFileHelper.cs
- PrintingPermission.cs
- CompressedStack.cs
- EnumValidator.cs
- ISO2022Encoding.cs
- DbConnectionPoolIdentity.cs
- ZipIOExtraField.cs
- AdPostCacheSubstitution.cs
- Separator.cs
- XmlWrappingWriter.cs
- MenuItemStyle.cs
- SwitchElementsCollection.cs
- WebPartConnectionsCloseVerb.cs
- MinimizableAttributeTypeConverter.cs
- SafePointer.cs
- Knowncolors.cs
- WrapperSecurityCommunicationObject.cs
- SByteStorage.cs
- ClientScriptManager.cs
- WebBodyFormatMessageProperty.cs
- wpf-etw.cs
- GPPOINT.cs
- SystemInfo.cs
- DataGridViewCellConverter.cs
- MulticastDelegate.cs
- MsmqBindingElementBase.cs
- IFlowDocumentViewer.cs
- SecurityException.cs
- CommandLineParser.cs
- CodeBinaryOperatorExpression.cs
- NonBatchDirectoryCompiler.cs
- ObjectItemCollection.cs
- ViewManagerAttribute.cs
- TimerTable.cs
- NativeMethodsCLR.cs
- ListViewTableRow.cs
- NamedPipeConnectionPoolSettings.cs
- Margins.cs
- DataGridViewRowCollection.cs
- ClientTargetSection.cs
- CodeTypeDeclarationCollection.cs
- ConsumerConnectionPoint.cs
- CodeDelegateCreateExpression.cs
- GeneralTransform3D.cs
- TagElement.cs
- NavigationExpr.cs
- InfoCardKeyedHashAlgorithm.cs
- PermissionSetEnumerator.cs
- StorageComplexTypeMapping.cs
- MetadataException.cs
- TcpActivation.cs
- MultipleViewPattern.cs
- CustomErrorsSectionWrapper.cs
- SafeLocalMemHandle.cs
- SspiSecurityTokenProvider.cs
- AutomationElementCollection.cs
- StrongName.cs
- CustomUserNameSecurityTokenAuthenticator.cs
- DataObjectEventArgs.cs
- AutomationPatternInfo.cs
- TemplateKeyConverter.cs