Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / fx / src / Wmi / managed / System / Management / Instrumentation / CodeSpit.cs / 1305376 / CodeSpit.cs
namespace System.Management.Instrumentation { using System; using System.IO; using System.Collections; using System.Collections.Specialized; using System.Globalization; using System.Runtime.Versioning; class CodeWriter { int depth; ArrayList children = new ArrayList(); public static explicit operator String(CodeWriter writer) { return writer.ToString(); } public override string ToString() { StringWriter writer = new StringWriter(CultureInfo.InvariantCulture); WriteCode(writer); string retString = writer.ToString(); writer.Close(); return retString; } void WriteCode(TextWriter writer) { string prefix = new String(' ', depth*4); foreach(Object child in children) { if(null == child) { writer.WriteLine(); } else if(child is string) { writer.Write(prefix); writer.WriteLine(child); } else ((CodeWriter)child).WriteCode(writer); } } public CodeWriter AddChild(string name) { Line(name); Line("{"); CodeWriter child = new CodeWriter(); child.depth = depth+1; children.Add(child); Line("}"); return child; } public CodeWriter AddChild(params string[] parts) { return AddChild(String.Concat(parts)); } public CodeWriter AddChildNoIndent(string name) { Line(name); CodeWriter child = new CodeWriter(); child.depth = depth+1; children.Add(child); return child; } public CodeWriter AddChild(CodeWriter snippet) { snippet.depth = depth; children.Add(snippet); return snippet; } public void Line(string line) { children.Add(line); } public void Line(params string[] parts) { Line(String.Concat(parts)); } public void Line() { children.Add(null); } } class ReferencesCollection { StringCollection namespaces = new StringCollection(); public StringCollection Namespaces { get { return namespaces; } } StringCollection assemblies = new StringCollection(); public StringCollection Assemblies { get { return assemblies; } } CodeWriter usingCode = new CodeWriter(); public CodeWriter UsingCode { get {return usingCode; } } [ResourceExposure(ResourceScope.None),ResourceConsumption(ResourceScope.Machine,ResourceScope.Machine)] public void Add(Type type) { if(!namespaces.Contains(type.Namespace)) { namespaces.Add(type.Namespace); usingCode.Line(String.Format("using {0};", type.Namespace)); } if(!assemblies.Contains(type.Assembly.Location)) assemblies.Add(type.Assembly.Location); } } } // 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
- XmlWriterTraceListener.cs
- WindowsGraphicsWrapper.cs
- FacetDescriptionElement.cs
- ListItemCollection.cs
- RichTextBoxAutomationPeer.cs
- WarningException.cs
- DockPattern.cs
- XmlMemberMapping.cs
- ScriptResourceAttribute.cs
- HttpHandlersSection.cs
- ConfigLoader.cs
- PropertyGridCommands.cs
- DuplicateWaitObjectException.cs
- BaseValidatorDesigner.cs
- ReceiveContent.cs
- StorageMappingItemLoader.cs
- MultiAsyncResult.cs
- cookiecollection.cs
- InstalledFontCollection.cs
- CaseInsensitiveOrdinalStringComparer.cs
- IntellisenseTextBox.designer.cs
- CapacityStreamGeometryContext.cs
- HttpApplication.cs
- RelatedView.cs
- AlternateView.cs
- RemoteWebConfigurationHost.cs
- SendContent.cs
- EntityViewGenerationConstants.cs
- Thickness.cs
- MatrixUtil.cs
- XmlSiteMapProvider.cs
- SimpleRecyclingCache.cs
- SecurityTokenSerializer.cs
- RegistryKey.cs
- MainMenu.cs
- ToolStripItemTextRenderEventArgs.cs
- WebContentFormatHelper.cs
- DataServiceClientException.cs
- Privilege.cs
- WorkerRequest.cs
- WorkflowWebService.cs
- SystemException.cs
- TextFormatterContext.cs
- ZipIOCentralDirectoryBlock.cs
- CryptoStream.cs
- XamlBrushSerializer.cs
- HtmlValidationSummaryAdapter.cs
- RoleGroupCollection.cs
- XmlSchemaInclude.cs
- WindowsNonControl.cs
- BitmapEffectInput.cs
- XmlQueryContext.cs
- ContractMapping.cs
- ArrayList.cs
- PublisherIdentityPermission.cs
- sqlinternaltransaction.cs
- XmlUtf8RawTextWriter.cs
- Button.cs
- XmlElement.cs
- Filter.cs
- XmlUTF8TextReader.cs
- HttpProcessUtility.cs
- WorkflowMarkupSerializerMapping.cs
- ResolveDuplexAsyncResult.cs
- IdentitySection.cs
- HwndHost.cs
- RandomNumberGenerator.cs
- AbstractExpressions.cs
- AccessedThroughPropertyAttribute.cs
- OdbcEnvironmentHandle.cs
- DataGridViewHeaderCell.cs
- QueryExtender.cs
- TextServicesContext.cs
- BitmapInitialize.cs
- _SslSessionsCache.cs
- SqlUnionizer.cs
- HierarchicalDataBoundControl.cs
- NavigationHelper.cs
- CustomBindingElement.cs
- SystemIPInterfaceProperties.cs
- DataStorage.cs
- SecureEnvironment.cs
- EventLogEntry.cs
- SubMenuStyleCollection.cs
- SQLBytes.cs
- DataGridViewTextBoxEditingControl.cs
- FieldBuilder.cs
- SingleAnimationUsingKeyFrames.cs
- Vector3DAnimationUsingKeyFrames.cs
- DetailsViewInsertEventArgs.cs
- ControlType.cs
- OrderingInfo.cs
- ConstantSlot.cs
- Vector3DAnimationBase.cs
- EventLogPermissionEntry.cs
- ImageAttributes.cs
- UpdateProgress.cs
- _Win32.cs
- Geometry.cs
- TemplateControlParser.cs