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
- SQLBytes.cs
- xmlfixedPageInfo.cs
- DataMisalignedException.cs
- Error.cs
- AutoCompleteStringCollection.cs
- hwndwrapper.cs
- HtmlTitle.cs
- ProxyHelper.cs
- StorageMappingFragment.cs
- NameObjectCollectionBase.cs
- BindingCollection.cs
- ConfigurationElementCollection.cs
- DeflateInput.cs
- RoutedPropertyChangedEventArgs.cs
- EdmSchemaError.cs
- ConnectionsZone.cs
- BitmapEditor.cs
- PinnedBufferMemoryStream.cs
- SingleObjectCollection.cs
- xmlformatgeneratorstatics.cs
- AliasGenerator.cs
- FilteredAttributeCollection.cs
- MenuStrip.cs
- odbcmetadatafactory.cs
- InvokeGenerator.cs
- SingleAnimationBase.cs
- MetadataArtifactLoaderComposite.cs
- TrustLevelCollection.cs
- StructuredTypeInfo.cs
- FixedSOMTable.cs
- PublisherIdentityPermission.cs
- OdbcPermission.cs
- XmlCharType.cs
- MetadataCache.cs
- InternalConfigHost.cs
- XsltConvert.cs
- InheritablePropertyChangeInfo.cs
- WhitespaceSignificantCollectionAttribute.cs
- ToolStripSeparator.cs
- MsmqTransportReceiveParameters.cs
- ImmutableAssemblyCacheEntry.cs
- SQLDoubleStorage.cs
- HttpCachePolicy.cs
- SelectedDatesCollection.cs
- StyleCollection.cs
- UserControlAutomationPeer.cs
- ObjectConverter.cs
- EventProviderBase.cs
- BitmapCodecInfoInternal.cs
- SortDescriptionCollection.cs
- ActivityDefaults.cs
- TreeViewAutomationPeer.cs
- MessageEnumerator.cs
- SessionStateContainer.cs
- Operator.cs
- RadioButtonStandardAdapter.cs
- MSAAEventDispatcher.cs
- DataGridViewRowDividerDoubleClickEventArgs.cs
- HasCopySemanticsAttribute.cs
- Pair.cs
- SortableBindingList.cs
- DefaultExpression.cs
- EdmSchemaError.cs
- Int16Animation.cs
- SecondaryIndex.cs
- GatewayDefinition.cs
- PermissionListSet.cs
- Journaling.cs
- ProxyElement.cs
- SinglePageViewer.cs
- Int32Animation.cs
- RIPEMD160Managed.cs
- EntityRecordInfo.cs
- COAUTHINFO.cs
- BindingCollection.cs
- NodeFunctions.cs
- ContentTextAutomationPeer.cs
- _HelperAsyncResults.cs
- OracleDateTime.cs
- ManagementOptions.cs
- XmlLinkedNode.cs
- SamlSerializer.cs
- Opcode.cs
- RegexWriter.cs
- _AutoWebProxyScriptWrapper.cs
- GraphicsContext.cs
- StandardMenuStripVerb.cs
- PrintingPermission.cs
- OleDbErrorCollection.cs
- TextEndOfLine.cs
- NotImplementedException.cs
- TraceXPathNavigator.cs
- NegotiateStream.cs
- TrackBar.cs
- XmlBinaryReader.cs
- CommonEndpointBehaviorElement.cs
- ListenerElementsCollection.cs
- CellRelation.cs
- ImpersonationContext.cs
- CanExecuteRoutedEventArgs.cs