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
- DataGridViewCheckBoxCell.cs
- SoapAttributes.cs
- SharedPersonalizationStateInfo.cs
- ClientTargetCollection.cs
- MemoryRecordBuffer.cs
- TypeConvertions.cs
- DataObjectPastingEventArgs.cs
- GridItemProviderWrapper.cs
- TemplateGroupCollection.cs
- SqlBulkCopyColumnMapping.cs
- ExceptionHandlers.cs
- bindurihelper.cs
- Accessors.cs
- OpacityConverter.cs
- ExitEventArgs.cs
- CodeAttributeDeclaration.cs
- Listbox.cs
- NameValueCollection.cs
- CodeNamespaceImport.cs
- SQLInt32Storage.cs
- ResourceReferenceExpression.cs
- WebBrowserSiteBase.cs
- WebPartDisplayModeEventArgs.cs
- GcHandle.cs
- Exceptions.cs
- CriticalExceptions.cs
- Graph.cs
- XmlCharCheckingReader.cs
- SystemTcpConnection.cs
- _BaseOverlappedAsyncResult.cs
- TagMapInfo.cs
- ActionMessageFilterTable.cs
- StateDesigner.Helpers.cs
- Highlights.cs
- DataGridViewButtonColumn.cs
- Context.cs
- SharedStream.cs
- DelegatingTypeDescriptionProvider.cs
- TrackingMemoryStream.cs
- CompiledQuery.cs
- DataSourceXmlAttributeAttribute.cs
- _SslState.cs
- BinHexEncoder.cs
- FlowNode.cs
- versioninfo.cs
- JsonQNameDataContract.cs
- ByteAnimationBase.cs
- VoiceInfo.cs
- ComponentCache.cs
- ItemsPresenter.cs
- XmlMtomReader.cs
- ProfileModule.cs
- NativeMethods.cs
- ScriptResourceDefinition.cs
- SqlCrossApplyToCrossJoin.cs
- OutputCacheSettingsSection.cs
- DataObjectCopyingEventArgs.cs
- XmlSortKeyAccumulator.cs
- _NestedSingleAsyncResult.cs
- HtmlTableRowCollection.cs
- FacetDescription.cs
- FloaterBaseParagraph.cs
- PropertyHelper.cs
- ProviderConnectionPointCollection.cs
- ViewStateChangedEventArgs.cs
- LocationReference.cs
- RedistVersionInfo.cs
- SpotLight.cs
- TreeNodeCollection.cs
- XmlIgnoreAttribute.cs
- SessionEndingCancelEventArgs.cs
- ButtonBaseAutomationPeer.cs
- SymLanguageVendor.cs
- ToolstripProfessionalRenderer.cs
- ResourcePool.cs
- QueryStringParameter.cs
- WebPartZoneBase.cs
- AuthenticationModulesSection.cs
- __Error.cs
- IdentityReference.cs
- ProfileEventArgs.cs
- FunctionMappingTranslator.cs
- base64Transforms.cs
- RealProxy.cs
- Grid.cs
- SqlMethodAttribute.cs
- OrderedEnumerableRowCollection.cs
- OdbcRowUpdatingEvent.cs
- TdsParameterSetter.cs
- Geometry.cs
- MailMessage.cs
- SafeEventLogReadHandle.cs
- QuadraticBezierSegment.cs
- TextCompositionEventArgs.cs
- DataBoundControl.cs
- BinaryWriter.cs
- Geometry3D.cs
- VectorAnimationBase.cs
- PassportAuthenticationEventArgs.cs
- BufferedGraphics.cs