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
- DBConcurrencyException.cs
- LocalizableAttribute.cs
- SQLInt16Storage.cs
- BitmapEffectDrawingContextState.cs
- StorageAssociationTypeMapping.cs
- SessionStateUtil.cs
- UserNamePasswordValidator.cs
- ResourceType.cs
- ValidationSummaryDesigner.cs
- StandardOleMarshalObject.cs
- ErrorTableItemStyle.cs
- MetadataUtilsSmi.cs
- CookielessHelper.cs
- SchemaTableOptionalColumn.cs
- UIHelper.cs
- StreamWriter.cs
- StoreItemCollection.cs
- EditableRegion.cs
- PrintDialogException.cs
- BindingExpressionUncommonField.cs
- DiscoveryProxy.cs
- SqlProviderServices.cs
- ListViewUpdateEventArgs.cs
- AttributeQuery.cs
- RegexCapture.cs
- GridToolTip.cs
- Rect.cs
- DeferredElementTreeState.cs
- KeyGesture.cs
- XmlTypeAttribute.cs
- RectAnimationBase.cs
- BooleanSwitch.cs
- LoginUtil.cs
- RoutedPropertyChangedEventArgs.cs
- GPRECT.cs
- Exceptions.cs
- InvariantComparer.cs
- Span.cs
- PaperSource.cs
- GPStream.cs
- DataGridAddNewRow.cs
- DbModificationClause.cs
- TcpTransportElement.cs
- TypeDescriptor.cs
- CodeVariableDeclarationStatement.cs
- GlobalEventManager.cs
- StopStoryboard.cs
- LineVisual.cs
- _NativeSSPI.cs
- InvokeDelegate.cs
- WebPart.cs
- _AuthenticationState.cs
- OleDbMetaDataFactory.cs
- Freezable.cs
- DeobfuscatingStream.cs
- EntitySqlQueryCacheEntry.cs
- securitymgrsite.cs
- IProvider.cs
- SHA1CryptoServiceProvider.cs
- SettingsPropertyNotFoundException.cs
- Serializer.cs
- PasswordDeriveBytes.cs
- NameScope.cs
- _AcceptOverlappedAsyncResult.cs
- MessageQueueKey.cs
- ObjectListShowCommandsEventArgs.cs
- SqlParameterCollection.cs
- PnrpPermission.cs
- QilTargetType.cs
- StylusCaptureWithinProperty.cs
- SerializationObjectManager.cs
- AnimationException.cs
- PlatformCulture.cs
- CharEntityEncoderFallback.cs
- MemoryFailPoint.cs
- SafeHandles.cs
- DataSourceControl.cs
- DataGridColumnDropSeparator.cs
- AdapterUtil.cs
- ColorMatrix.cs
- RangeValuePattern.cs
- XmlAnyElementAttributes.cs
- userdatakeys.cs
- DBSqlParserTable.cs
- Message.cs
- HMACSHA512.cs
- VisualStyleElement.cs
- UniqueID.cs
- ConfigurationManagerInternal.cs
- TreeIterators.cs
- DPTypeDescriptorContext.cs
- HtmlProps.cs
- PrintControllerWithStatusDialog.cs
- HtmlElement.cs
- GeometryGroup.cs
- COM2PropertyDescriptor.cs
- AppearanceEditorPart.cs
- QfeChecker.cs
- Int64AnimationUsingKeyFrames.cs
- XmlDocumentSerializer.cs