Code:
/ 4.0 / 4.0 / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / Tools / System.Activities.Presentation / System / Activities / Presentation / TypeNameHelper.cs / 1305376 / TypeNameHelper.cs
//---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation { using System; using System.Globalization; using System.Text; using System.Text.RegularExpressions; internal static class TypeNameHelper { // note: does not work for nested type when fullName is false public static string GetDisplayName(Type type, bool fullName) { if (type == null) { return string.Empty; } if (type.IsGenericParameter) { return type.Name; } if (!type.IsGenericType && !type.IsArray) { if (fullName) { return type.FullName; } else { return type.Name; } } // replace `2 withRegex regex = new Regex("`[0-9]+"); GenericsMatchEvaluator evaluator = new GenericsMatchEvaluator(type.GetGenericArguments(), fullName); // Remove [[fullName1, ..., fullNameX]] string name; if (fullName) { name = type.FullName; } else { name = type.Name; } int start = name.IndexOf("[[", StringComparison.Ordinal); int end = name.LastIndexOf("]]", StringComparison.Ordinal); if (start > 0 && end > 0) { name = name.Substring(0, start) + name.Substring(end + 2); } return regex.Replace(name, evaluator.Evaluate); } class GenericsMatchEvaluator { Type[] generics = null; int index; bool fullName; public GenericsMatchEvaluator(Type[] generics, bool fullName) { this.generics = generics; this.index = 0; this.fullName = fullName; } public string Evaluate(Match match) { int numberOfParameters = int.Parse(match.Value.Substring(1), CultureInfo.InvariantCulture); StringBuilder sb = new StringBuilder(); // matched "`N" is replaced by " " sb.Append("<"); for (int i = 0; i < numberOfParameters; i++) { if (i > 0) { sb.Append(", "); } sb.Append(TypeNameHelper.GetDisplayName(this.generics[this.index++], fullName)); } sb.Append(">"); return sb.ToString(); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007. //---------------------------------------------------------------- // Copyright (c) Microsoft Corporation. All rights reserved. //--------------------------------------------------------------- namespace System.Activities.Presentation { using System; using System.Globalization; using System.Text; using System.Text.RegularExpressions; internal static class TypeNameHelper { // note: does not work for nested type when fullName is false public static string GetDisplayName(Type type, bool fullName) { if (type == null) { return string.Empty; } if (type.IsGenericParameter) { return type.Name; } if (!type.IsGenericType && !type.IsArray) { if (fullName) { return type.FullName; } else { return type.Name; } } // replace `2 with Regex regex = new Regex("`[0-9]+"); GenericsMatchEvaluator evaluator = new GenericsMatchEvaluator(type.GetGenericArguments(), fullName); // Remove [[fullName1, ..., fullNameX]] string name; if (fullName) { name = type.FullName; } else { name = type.Name; } int start = name.IndexOf("[[", StringComparison.Ordinal); int end = name.LastIndexOf("]]", StringComparison.Ordinal); if (start > 0 && end > 0) { name = name.Substring(0, start) + name.Substring(end + 2); } return regex.Replace(name, evaluator.Evaluate); } class GenericsMatchEvaluator { Type[] generics = null; int index; bool fullName; public GenericsMatchEvaluator(Type[] generics, bool fullName) { this.generics = generics; this.index = 0; this.fullName = fullName; } public string Evaluate(Match match) { int numberOfParameters = int.Parse(match.Value.Substring(1), CultureInfo.InvariantCulture); StringBuilder sb = new StringBuilder(); // matched "`N" is replaced by " " sb.Append("<"); for (int i = 0; i < numberOfParameters; i++) { if (i > 0) { sb.Append(", "); } sb.Append(TypeNameHelper.GetDisplayName(this.generics[this.index++], fullName)); } sb.Append(">"); return sb.ToString(); } } } } // File provided for Reference Use Only by Microsoft Corporation (c) 2007.
Link Menu
This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- TypeBuilder.cs
- StringArrayConverter.cs
- PropertyChangedEventManager.cs
- SecurityHelper.cs
- StandardCommandToolStripMenuItem.cs
- JapaneseCalendar.cs
- SQLBytesStorage.cs
- ContainsSearchOperator.cs
- XmlTypeMapping.cs
- HtmlSelect.cs
- WindowsFormsHostAutomationPeer.cs
- PageCodeDomTreeGenerator.cs
- AssemblyHash.cs
- ToolboxBitmapAttribute.cs
- SapiGrammar.cs
- Transform3D.cs
- CapabilitiesAssignment.cs
- SuppressMessageAttribute.cs
- SymbolDocumentInfo.cs
- ImageBrush.cs
- GeometryHitTestResult.cs
- X509Certificate2.cs
- Event.cs
- BindingExpressionBase.cs
- Conditional.cs
- NotificationContext.cs
- FlowPanelDesigner.cs
- AnnotationComponentChooser.cs
- ClientSideQueueItem.cs
- PopOutPanel.cs
- StylusOverProperty.cs
- UndirectedGraph.cs
- TabControlAutomationPeer.cs
- UmAlQuraCalendar.cs
- VarRemapper.cs
- RegexMatch.cs
- Mouse.cs
- EncryptedData.cs
- Item.cs
- CaretElement.cs
- DataBoundControlActionList.cs
- EntityProxyFactory.cs
- StylusPointPropertyId.cs
- StringSorter.cs
- HttpModuleCollection.cs
- XmlSchemaParticle.cs
- DocumentApplicationJournalEntry.cs
- AutoGeneratedFieldProperties.cs
- DSACryptoServiceProvider.cs
- ConfigXmlAttribute.cs
- Base64Decoder.cs
- SQLDecimalStorage.cs
- documentation.cs
- TimeSpanValidatorAttribute.cs
- GeneralTransform.cs
- _KerberosClient.cs
- Filter.cs
- DataBindEngine.cs
- ObjectSpanRewriter.cs
- SingleSelectRootGridEntry.cs
- SslStream.cs
- ConnectorEditor.cs
- HtmlInputCheckBox.cs
- SqlFacetAttribute.cs
- EventWaitHandle.cs
- EventLogPermission.cs
- RtfToXamlReader.cs
- RectangleHotSpot.cs
- XmlComment.cs
- FreezableDefaultValueFactory.cs
- XmlBinaryReaderSession.cs
- AssociationTypeEmitter.cs
- ClonableStack.cs
- RoleGroup.cs
- DataGridViewRowCollection.cs
- TemplateContentLoader.cs
- DbParameterCollection.cs
- CircleHotSpot.cs
- _TimerThread.cs
- ValueQuery.cs
- SmiTypedGetterSetter.cs
- TextBoxBase.cs
- DataGridViewRowPostPaintEventArgs.cs
- Label.cs
- CultureSpecificStringDictionary.cs
- SystemException.cs
- StringResourceManager.cs
- WorkflowTransactionService.cs
- ObjectRef.cs
- DocumentViewer.cs
- CompilationUtil.cs
- Invariant.cs
- RelatedImageListAttribute.cs
- BamlReader.cs
- NGCSerializer.cs
- URL.cs
- ListViewHitTestInfo.cs
- __Error.cs
- RefreshEventArgs.cs
- StreamWriter.cs