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
- OdbcParameter.cs
- RuleDefinitions.cs
- HostedElements.cs
- httpserverutility.cs
- PhoneCallDesigner.cs
- FixedPage.cs
- ContentPropertyAttribute.cs
- FormViewPageEventArgs.cs
- SettingsContext.cs
- TypeLoadException.cs
- WebPartConnectionsCancelEventArgs.cs
- WebRequestModuleElement.cs
- ColorPalette.cs
- ElementHostAutomationPeer.cs
- AppliedDeviceFiltersEditor.cs
- IPEndPoint.cs
- LoginDesignerUtil.cs
- ComponentSerializationService.cs
- CodeAttachEventStatement.cs
- OutputScopeManager.cs
- PageSetupDialog.cs
- ZoneButton.cs
- QilSortKey.cs
- DesignerOptionService.cs
- SoapExtensionReflector.cs
- ResourceType.cs
- FileAuthorizationModule.cs
- SqlMethodCallConverter.cs
- StrongNameSignatureInformation.cs
- HttpCookieCollection.cs
- QueryContinueDragEventArgs.cs
- InternalCache.cs
- QilList.cs
- CollectionBase.cs
- ToolStripPanelSelectionGlyph.cs
- RemotingServices.cs
- ComponentSerializationService.cs
- ListDictionary.cs
- OutputCacheModule.cs
- SizeChangedEventArgs.cs
- SqlDataSource.cs
- TextCollapsingProperties.cs
- Debugger.cs
- TextSelectionHighlightLayer.cs
- ResizingMessageFilter.cs
- ChameleonKey.cs
- StringResourceManager.cs
- BitmapEffectCollection.cs
- CriticalHandle.cs
- DefaultTextStoreTextComposition.cs
- AesCryptoServiceProvider.cs
- StorageMappingFragment.cs
- FtpWebResponse.cs
- Avt.cs
- C14NUtil.cs
- SessionIDManager.cs
- SchemaEntity.cs
- ItemTypeToolStripMenuItem.cs
- SvcFileManager.cs
- BindingCompleteEventArgs.cs
- HtmlValidationSummaryAdapter.cs
- HebrewCalendar.cs
- CancelEventArgs.cs
- EntryPointNotFoundException.cs
- NullableConverter.cs
- RijndaelManagedTransform.cs
- DescendantOverDescendantQuery.cs
- ResourceDisplayNameAttribute.cs
- MimeTypeAttribute.cs
- DrawItemEvent.cs
- Closure.cs
- AlternateView.cs
- sqlnorm.cs
- SettingsContext.cs
- HttpHandlerActionCollection.cs
- CryptoApi.cs
- DataRelation.cs
- FileSecurity.cs
- GlyphShapingProperties.cs
- ApplicationServiceHelper.cs
- OleCmdHelper.cs
- DataServiceHostFactory.cs
- ControlBindingsCollection.cs
- NavigationHelper.cs
- RenderContext.cs
- DocumentGridContextMenu.cs
- DataTablePropertyDescriptor.cs
- PriorityBinding.cs
- GenericUriParser.cs
- nulltextcontainer.cs
- SmtpSpecifiedPickupDirectoryElement.cs
- DynamicValueConverter.cs
- SubpageParagraph.cs
- GetResponse.cs
- CodeDirectionExpression.cs
- ResourceReader.cs
- HtmlFormAdapter.cs
- LinkedList.cs
- StreamWithDictionary.cs
- PathFigureCollection.cs