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
- SafeFindHandle.cs
- EnumerableRowCollectionExtensions.cs
- ConditionalAttribute.cs
- BitmapData.cs
- ListItemCollection.cs
- DateTimeUtil.cs
- Rfc4050KeyFormatter.cs
- HierarchicalDataTemplate.cs
- TextWriter.cs
- SchemaMerger.cs
- PieceNameHelper.cs
- ProfilePropertyNameValidator.cs
- KeyEventArgs.cs
- Pointer.cs
- MembershipPasswordException.cs
- SafeFileMappingHandle.cs
- SqlBuffer.cs
- SystemDropShadowChrome.cs
- ISFClipboardData.cs
- DataColumn.cs
- OutOfProcStateClientManager.cs
- DataGridBoolColumn.cs
- ColumnTypeConverter.cs
- FormsAuthenticationModule.cs
- RightsManagementInformation.cs
- LogManagementAsyncResult.cs
- ThemeInfoAttribute.cs
- CommentAction.cs
- WebPartMinimizeVerb.cs
- TextContainerChangeEventArgs.cs
- SqlConnectionString.cs
- WebExceptionStatus.cs
- XmlStringTable.cs
- ExceptionUtil.cs
- CqlBlock.cs
- _emptywebproxy.cs
- securitymgrsite.cs
- DataBindingExpressionBuilder.cs
- MsmqIntegrationChannelFactory.cs
- DataRecord.cs
- Pointer.cs
- DBBindings.cs
- ImageAutomationPeer.cs
- OdbcFactory.cs
- ControlCachePolicy.cs
- ISAPIApplicationHost.cs
- ToolBar.cs
- SystemResources.cs
- CharacterMetrics.cs
- Expression.cs
- PrimitiveCodeDomSerializer.cs
- ResourceDescriptionAttribute.cs
- TaiwanCalendar.cs
- ExtensibleClassFactory.cs
- URLIdentityPermission.cs
- Socket.cs
- ServicePointManagerElement.cs
- SchemaNames.cs
- CompositionTarget.cs
- FormViewRow.cs
- OleDbException.cs
- CharacterMetricsDictionary.cs
- ZoneLinkButton.cs
- SafeArrayTypeMismatchException.cs
- SecurityResources.cs
- ellipse.cs
- ConfigXmlText.cs
- DbSetClause.cs
- WebPartManagerInternals.cs
- SqlException.cs
- SmiContext.cs
- SecureUICommand.cs
- VectorAnimationBase.cs
- UnSafeCharBuffer.cs
- RadioButtonList.cs
- TextEditorTyping.cs
- SizeIndependentAnimationStorage.cs
- ConstantSlot.cs
- ZoneLinkButton.cs
- CustomValidator.cs
- QilVisitor.cs
- PeerObject.cs
- ToolStripSeparator.cs
- EntityModelSchemaGenerator.cs
- Pipe.cs
- TextProviderWrapper.cs
- MetadataProperty.cs
- MetadataSerializer.cs
- ReferenceSchema.cs
- BamlTreeMap.cs
- XmlWellformedWriter.cs
- Facet.cs
- MethodBuilderInstantiation.cs
- ToolboxItem.cs
- XamlSerializer.cs
- MarkupExtensionReturnTypeAttribute.cs
- ActivityAction.cs
- Screen.cs
- MexBindingElement.cs
- FileDetails.cs