Code:
/ 4.0 / 4.0 / 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. 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
- WebPartMenu.cs
- CapabilitiesRule.cs
- DataSourceListEditor.cs
- TrackingConditionCollection.cs
- OrderingQueryOperator.cs
- CategoryGridEntry.cs
- RSAPKCS1SignatureDeformatter.cs
- PointCollection.cs
- ObjectPersistData.cs
- WindowsFormsLinkLabel.cs
- UpdateTracker.cs
- PrimaryKeyTypeConverter.cs
- DataGridViewCellParsingEventArgs.cs
- MiniModule.cs
- OletxTransactionFormatter.cs
- DrawTreeNodeEventArgs.cs
- ContentControl.cs
- AutomationFocusChangedEventArgs.cs
- Quad.cs
- SymLanguageVendor.cs
- MessageQueueAccessControlEntry.cs
- SqlCharStream.cs
- CompoundFileStreamReference.cs
- StyleSheetRefUrlEditor.cs
- ColumnResult.cs
- CacheOutputQuery.cs
- SoapSchemaImporter.cs
- WSIdentityFaultException.cs
- ProfileServiceManager.cs
- XmlObjectSerializerContext.cs
- Utility.cs
- ConstraintCollection.cs
- bindurihelper.cs
- ExeContext.cs
- Rotation3DAnimationBase.cs
- DbConnectionClosed.cs
- SystemNetHelpers.cs
- TypeForwardedToAttribute.cs
- HashMembershipCondition.cs
- VirtualizingPanel.cs
- CallInfo.cs
- Composition.cs
- SecurityDocument.cs
- GlyphTypeface.cs
- Code.cs
- OpenTypeMethods.cs
- EditCommandColumn.cs
- DecoratedNameAttribute.cs
- ObjectStateManager.cs
- DictionaryEntry.cs
- SkinBuilder.cs
- JobCollate.cs
- ColumnTypeConverter.cs
- PerspectiveCamera.cs
- SqlDataAdapter.cs
- PenLineJoinValidation.cs
- InvalidPrinterException.cs
- WindowsFormsSynchronizationContext.cs
- CompositeActivityTypeDescriptor.cs
- Latin1Encoding.cs
- StringUtil.cs
- IDictionary.cs
- TextFormattingConverter.cs
- SqlMethodTransformer.cs
- Debug.cs
- RSAPKCS1SignatureDeformatter.cs
- PositiveTimeSpanValidator.cs
- CustomSignedXml.cs
- DataReaderContainer.cs
- TimeoutException.cs
- DocumentOrderComparer.cs
- ProcessModelSection.cs
- XmlBinaryReader.cs
- UpdatableWrapper.cs
- RelatedView.cs
- SecurityRuntime.cs
- WebPartVerbsEventArgs.cs
- XamlGridLengthSerializer.cs
- x509utils.cs
- DataFormats.cs
- ModulesEntry.cs
- UserThread.cs
- CollectionContainer.cs
- DashStyle.cs
- SQLDecimalStorage.cs
- SingleObjectCollection.cs
- CompilationSection.cs
- ApplicationId.cs
- DiscoveryDocumentLinksPattern.cs
- DynamicPropertyReader.cs
- DateTimeFormat.cs
- ActivityWithResult.cs
- FileRecordSequenceCompletedAsyncResult.cs
- WebPartManager.cs
- FlowPosition.cs
- ServiceContractDetailViewControl.cs
- XpsFixedDocumentReaderWriter.cs
- TTSEngineTypes.cs
- WebContext.cs
- ByteRangeDownloader.cs