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
- TextBox.cs
- ReferenceEqualityComparer.cs
- SelectionEditor.cs
- DeriveBytes.cs
- DSACryptoServiceProvider.cs
- SerializableAttribute.cs
- DocumentGridPage.cs
- MemberCollection.cs
- StorageFunctionMapping.cs
- WindowsEditBoxRange.cs
- UnionCodeGroup.cs
- ImageAnimator.cs
- Shape.cs
- MulticastIPAddressInformationCollection.cs
- FontUnit.cs
- WhitespaceRule.cs
- SystemSounds.cs
- UriWriter.cs
- ElementNotAvailableException.cs
- AsyncContentLoadedEventArgs.cs
- ColorDialog.cs
- SQLMembershipProvider.cs
- DesignRelationCollection.cs
- XmlValueConverter.cs
- CollectionView.cs
- Model3DGroup.cs
- SafeFileHandle.cs
- PeerTransportListenAddressValidatorAttribute.cs
- SafeHandle.cs
- AtomMaterializerLog.cs
- ProgressPage.cs
- CryptoProvider.cs
- DataGridViewColumnCollectionDialog.cs
- ExpandSegment.cs
- ParenExpr.cs
- PatternMatcher.cs
- SiteMapProvider.cs
- XsltCompileContext.cs
- EndOfStreamException.cs
- LocatorPartList.cs
- ParallelDesigner.cs
- Brush.cs
- ImageListStreamer.cs
- DataGridViewTextBoxCell.cs
- RoutedEventArgs.cs
- dataobject.cs
- parserscommon.cs
- AutomationEvent.cs
- CalloutQueueItem.cs
- DocumentViewerHelper.cs
- ServiceDescriptionReflector.cs
- StaticResourceExtension.cs
- XPathDescendantIterator.cs
- ThrowHelper.cs
- X509Chain.cs
- JpegBitmapEncoder.cs
- Constants.cs
- XmlBinaryWriterSession.cs
- NamespaceEmitter.cs
- DataView.cs
- BitHelper.cs
- Int32Rect.cs
- EmptyStringExpandableObjectConverter.cs
- ServiceHostFactory.cs
- EntityProxyFactory.cs
- WebContext.cs
- SqlDataSourceQueryEditor.cs
- ErrorEventArgs.cs
- WebPartTransformerAttribute.cs
- DynamicVirtualDiscoSearcher.cs
- ExtendedPropertyCollection.cs
- TextEffectCollection.cs
- StreamWithDictionary.cs
- PropertyGridDesigner.cs
- HandledEventArgs.cs
- DockProviderWrapper.cs
- IisTraceWebEventProvider.cs
- TargetException.cs
- DBDataPermissionAttribute.cs
- RootNamespaceAttribute.cs
- UriTemplateMatchException.cs
- AtomicFile.cs
- TypedTableBaseExtensions.cs
- EntityProviderFactory.cs
- Matrix.cs
- WriterOutput.cs
- PrintDialogDesigner.cs
- EntityProviderFactory.cs
- ItemsChangedEventArgs.cs
- SchemaImporter.cs
- BufferModesCollection.cs
- TypeDescriptionProvider.cs
- ObjectStateManagerMetadata.cs
- GeneralTransform.cs
- _LazyAsyncResult.cs
- DATA_BLOB.cs
- TableChangeProcessor.cs
- CodeObject.cs
- ProtocolsConfigurationHandler.cs
- GridViewRow.cs