Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / WF / Common / AuthoringOM / Compiler / TypeSystem / CodeDomLoader.cs / 1305376 / CodeDomLoader.cs
namespace System.Workflow.ComponentModel.Compiler { using System; using System.CodeDom; using System.Collections; using System.Collections.Generic; using System.Reflection; using System.Diagnostics; internal class CodeDomLoader: IDisposable { private TypeProvider typeProvider = null; private CodeCompileUnit codeCompileUnit = null; private Listtypes = new List (); internal CodeDomLoader(TypeProvider typeProvider, CodeCompileUnit codeCompileUnit) { this.typeProvider = typeProvider; this.codeCompileUnit = codeCompileUnit; AddTypes(); } internal void Refresh(EventHandler refresher) { RemoveTypes(); refresher(this.typeProvider, EventArgs.Empty); AddTypes(); } private void AddTypes() { if (this.typeProvider != null && this.types != null) { this.types.Clear(); foreach (CodeNamespace codeNamespace in this.codeCompileUnit.Namespaces) { foreach (CodeTypeDeclaration codeTypeDeclaration in codeNamespace.Types) { // Look for partial type string typename = Helper.EnsureTypeName(codeTypeDeclaration.Name); if(codeNamespace.Name.Length > 0) typename = (Helper.EnsureTypeName(codeNamespace.Name) + "." + typename); DesignTimeType partialType = this.typeProvider.GetType(typename, false) as DesignTimeType; if ( partialType == null ) { partialType = new DesignTimeType(null, codeTypeDeclaration.Name, codeNamespace.Imports, codeNamespace.Name, this.typeProvider); this.types.Add(partialType); this.typeProvider.AddType(partialType); } partialType.AddCodeTypeDeclaration(codeTypeDeclaration); } } Queue nestedQueue = new Queue(this.types); while (nestedQueue.Count != 0) { Type type = nestedQueue.Dequeue() as Type; if(type.DeclaringType != null) this.types.Add(type); foreach (Type nestedType2 in type.GetNestedTypes(BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic)) nestedQueue.Enqueue(nestedType2); } } } private void RemoveTypes() { if (this.typeProvider != null && this.types != null) { this.typeProvider.RemoveTypes(this.types.ToArray()); this.types.Clear(); } } #region IDisposable Members public void Dispose() { RemoveTypes(); this.typeProvider = null; this.types = null; } #endregion } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. // Copyright (c) Microsoft Corporation. All rights reserved.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- WindowsFont.cs
- StorageSetMapping.cs
- Geometry.cs
- DataServiceContext.cs
- XmlSchemaChoice.cs
- SecurityTokenAuthenticator.cs
- _UriSyntax.cs
- DataGridViewRowConverter.cs
- CollaborationHelperFunctions.cs
- InputProcessorProfilesLoader.cs
- InstanceLockQueryResult.cs
- SqlUserDefinedTypeAttribute.cs
- ZipIOModeEnforcingStream.cs
- ArraySubsetEnumerator.cs
- AnimationClock.cs
- SettingsSection.cs
- RuntimeArgumentHandle.cs
- ServiceEndpointAssociationProvider.cs
- Merger.cs
- QueryOutputWriter.cs
- CryptoKeySecurity.cs
- FamilyTypeface.cs
- TemplateControlParser.cs
- SqlUserDefinedAggregateAttribute.cs
- SerializationObjectManager.cs
- EncodingNLS.cs
- AppDomainManager.cs
- XmlWhitespace.cs
- DispatcherExceptionEventArgs.cs
- NullableBoolConverter.cs
- DependsOnAttribute.cs
- LayoutEvent.cs
- SettingsProviderCollection.cs
- ActivityDesignerAccessibleObject.cs
- JavaScriptString.cs
- EllipseGeometry.cs
- PersonalizationAdministration.cs
- HttpInputStream.cs
- TextDecoration.cs
- GrabHandleGlyph.cs
- BitmapMetadataBlob.cs
- ObjectDisposedException.cs
- SoapExtensionImporter.cs
- ActivityExecutorSurrogate.cs
- HashMembershipCondition.cs
- VolatileResourceManager.cs
- PassportPrincipal.cs
- PropertyGridCommands.cs
- MemberRelationshipService.cs
- SafeSerializationManager.cs
- UrlAuthFailedErrorFormatter.cs
- GeometryModel3D.cs
- Stroke2.cs
- StringUtil.cs
- RadioButtonList.cs
- DateTimeOffset.cs
- CheckBoxPopupAdapter.cs
- Crc32.cs
- ListItemCollection.cs
- controlskin.cs
- Duration.cs
- ListItemConverter.cs
- DesignerVerbCollection.cs
- ChooseAction.cs
- GlobalId.cs
- FunctionImportMapping.ReturnTypeRenameMapping.cs
- _ScatterGatherBuffers.cs
- MessageDesigner.cs
- JulianCalendar.cs
- PageCodeDomTreeGenerator.cs
- SqlDataRecord.cs
- CodeIndexerExpression.cs
- StorageModelBuildProvider.cs
- GridViewCancelEditEventArgs.cs
- xmlsaver.cs
- UIElementCollection.cs
- SplitContainerDesigner.cs
- WorkflowElementDialog.cs
- DataSourceHelper.cs
- WebZone.cs
- PerfCounters.cs
- MemoryMappedViewAccessor.cs
- CompilationRelaxations.cs
- Exceptions.cs
- Cloud.cs
- BuildResultCache.cs
- ItemChangedEventArgs.cs
- SimpleNameService.cs
- ApplicationSettingsBase.cs
- HttpCacheParams.cs
- ActivityDesignerAccessibleObject.cs
- PropertyEmitterBase.cs
- Timeline.cs
- ManipulationInertiaStartingEventArgs.cs
- HideDisabledControlAdapter.cs
- QilLiteral.cs
- XslTransform.cs
- XmlChoiceIdentifierAttribute.cs
- ServiceHostFactory.cs
- GeneralTransformGroup.cs