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
- COM2ICategorizePropertiesHandler.cs
- CreateRefExpr.cs
- HandleRef.cs
- DefaultProxySection.cs
- Int32Rect.cs
- AssemblyInfo.cs
- XPathScanner.cs
- ToolStripComboBox.cs
- TableLayoutSettings.cs
- PerformanceCounterPermissionEntry.cs
- Logging.cs
- SwitchAttribute.cs
- DefinitionProperties.cs
- DataException.cs
- ResetableIterator.cs
- UInt32Storage.cs
- AttachedPropertyBrowsableForChildrenAttribute.cs
- PropertyIDSet.cs
- UniqueID.cs
- XmlSchemaObject.cs
- TcpTransportSecurity.cs
- IERequestCache.cs
- DiffuseMaterial.cs
- AsymmetricKeyExchangeFormatter.cs
- ColumnWidthChangingEvent.cs
- MimeBasePart.cs
- PropertyItem.cs
- MenuTracker.cs
- ClientRolePrincipal.cs
- IRCollection.cs
- Command.cs
- HtmlFormWrapper.cs
- XsltLoader.cs
- ClosureBinding.cs
- PartialList.cs
- CodeIdentifier.cs
- ItemCollection.cs
- EventProviderWriter.cs
- Int64KeyFrameCollection.cs
- ForceCopyBuildProvider.cs
- DbConnectionClosed.cs
- WebBaseEventKeyComparer.cs
- UnsafeNativeMethods.cs
- RtType.cs
- SiteMapNode.cs
- RawStylusInputCustomData.cs
- FontFamilyConverter.cs
- JobInputBins.cs
- PreloadedPackages.cs
- WmlPageAdapter.cs
- Propagator.Evaluator.cs
- HttpEncoderUtility.cs
- LogRecordSequence.cs
- EnumMember.cs
- UrlAuthFailedErrorFormatter.cs
- GroupBox.cs
- LockCookie.cs
- XmlDataDocument.cs
- EntityDataSourceEntityTypeFilterItem.cs
- OuterGlowBitmapEffect.cs
- SystemParameters.cs
- NameSpaceEvent.cs
- exports.cs
- MetadataItemSerializer.cs
- DataGridViewLinkCell.cs
- EnterpriseServicesHelper.cs
- OdbcEnvironmentHandle.cs
- Processor.cs
- StringDictionary.cs
- DrawTreeNodeEventArgs.cs
- ValidationErrorInfo.cs
- NavigateEvent.cs
- ConfigErrorGlyph.cs
- SiteMapProvider.cs
- AttachmentService.cs
- TextBoxDesigner.cs
- DataSet.cs
- ControlValuePropertyAttribute.cs
- BuildProvidersCompiler.cs
- FixedStringLookup.cs
- MdImport.cs
- ConfigurationLocationCollection.cs
- SchemaAttDef.cs
- MLangCodePageEncoding.cs
- DataGridAutomationPeer.cs
- AlternateViewCollection.cs
- CodeExporter.cs
- XmlSchemaDatatype.cs
- Size3D.cs
- InternalControlCollection.cs
- ResourcePool.cs
- DataServiceQuery.cs
- TranslateTransform.cs
- ConsumerConnectionPoint.cs
- DefaultAsyncDataDispatcher.cs
- ScrollProperties.cs
- TopClause.cs
- ContextBase.cs
- DataGridViewRowsAddedEventArgs.cs
- DynamicDiscoveryDocument.cs