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
- PrimitiveSchema.cs
- AppliesToBehaviorDecisionTable.cs
- ArrayList.cs
- SecurityUtils.cs
- COSERVERINFO.cs
- TabControlEvent.cs
- DrawListViewSubItemEventArgs.cs
- _NegotiateClient.cs
- InvalidCommandTreeException.cs
- IntranetCredentialPolicy.cs
- TrackPoint.cs
- AdRotator.cs
- HttpResponseInternalBase.cs
- ParseElementCollection.cs
- NumberSubstitution.cs
- ProcessInputEventArgs.cs
- CodeTryCatchFinallyStatement.cs
- UnsafeNativeMethods.cs
- ApplicationHost.cs
- BitVector32.cs
- MulticastOption.cs
- EntityDataSourceChangingEventArgs.cs
- TextAdaptor.cs
- HtmlContainerControl.cs
- ObjectDataProvider.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- DetailsViewModeEventArgs.cs
- InputScope.cs
- ArrayEditor.cs
- MultiViewDesigner.cs
- EditorPartCollection.cs
- ErrorStyle.cs
- ViewCellSlot.cs
- UIInitializationException.cs
- ContentPresenter.cs
- TraceUtility.cs
- XmlSchemaAll.cs
- URLEditor.cs
- ScriptControlDescriptor.cs
- ListViewDeletedEventArgs.cs
- IdentityHolder.cs
- TCEAdapterGenerator.cs
- ShapingWorkspace.cs
- DataIdProcessor.cs
- OracleConnectionStringBuilder.cs
- QilFactory.cs
- mediapermission.cs
- ExpressionEditorSheet.cs
- DomainConstraint.cs
- hresults.cs
- PreloadedPackages.cs
- Content.cs
- Number.cs
- Rules.cs
- StateMachine.cs
- PenThread.cs
- TraceHandler.cs
- XmlSchemaSequence.cs
- DataGridViewRowStateChangedEventArgs.cs
- XmlWriterSettings.cs
- CalendarDay.cs
- IdentityManager.cs
- SqlSupersetValidator.cs
- SoundPlayerAction.cs
- shaper.cs
- HtmlHistory.cs
- OuterGlowBitmapEffect.cs
- DataRowExtensions.cs
- XmlWriterSettings.cs
- XPathAxisIterator.cs
- EntitySqlQueryCacheKey.cs
- PagedDataSource.cs
- XmlTypeAttribute.cs
- DisplayClaim.cs
- datacache.cs
- TextureBrush.cs
- AdPostCacheSubstitution.cs
- CachedTypeface.cs
- RecordBuilder.cs
- SecurityDescriptor.cs
- IDQuery.cs
- HopperCache.cs
- UnsafeNativeMethods.cs
- StreamUpdate.cs
- StateManagedCollection.cs
- ServicePrincipalNameElement.cs
- PropertyValidationContext.cs
- ButtonDesigner.cs
- DataGridCell.cs
- ExtensionElement.cs
- MessageQueueKey.cs
- SimpleHandlerFactory.cs
- Event.cs
- MsmqHostedTransportConfiguration.cs
- webeventbuffer.cs
- SpecialFolderEnumConverter.cs
- SQLRoleProvider.cs
- Int32Rect.cs
- SpecularMaterial.cs
- PropertyGeneratedEventArgs.cs