Code:
/ 4.0 / 4.0 / untmp / 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.
Link Menu

This book is available now!
Buy at Amazon US or
Buy at Amazon UK
- MenuAutomationPeer.cs
- CalendarButton.cs
- FileStream.cs
- DCSafeHandle.cs
- EncryptedData.cs
- ListenerAdaptersInstallComponent.cs
- ManifestBasedResourceGroveler.cs
- DbProviderFactory.cs
- EFColumnProvider.cs
- Vector3DCollectionConverter.cs
- EventMemberCodeDomSerializer.cs
- DataGridComboBoxColumn.cs
- CorePropertiesFilter.cs
- ValueChangedEventManager.cs
- ContentElement.cs
- EntityPropertyMappingAttribute.cs
- DTCTransactionManager.cs
- CroppedBitmap.cs
- DoubleAnimationUsingPath.cs
- IConvertible.cs
- BamlLocalizerErrorNotifyEventArgs.cs
- SqlServer2KCompatibilityAnnotation.cs
- SendingRequestEventArgs.cs
- BindingListCollectionView.cs
- TypeConverters.cs
- DataGridViewTopLeftHeaderCell.cs
- AddingNewEventArgs.cs
- SymmetricCryptoHandle.cs
- DecoderBestFitFallback.cs
- PerfCounterSection.cs
- BamlVersionHeader.cs
- Trustee.cs
- ChildrenQuery.cs
- RadioButtonFlatAdapter.cs
- UnmanagedHandle.cs
- sqlpipe.cs
- XmlMembersMapping.cs
- _emptywebproxy.cs
- HelpEvent.cs
- UpDownEvent.cs
- BufferedGraphicsContext.cs
- AnnotationService.cs
- WbemException.cs
- XPathDocumentNavigator.cs
- MarkupCompilePass1.cs
- BatchStream.cs
- FramingEncoders.cs
- SizeF.cs
- Item.cs
- DynamicRendererThreadManager.cs
- ToolboxItemImageConverter.cs
- ResourceExpression.cs
- X509ServiceCertificateAuthentication.cs
- SchemaSetCompiler.cs
- ChunkedMemoryStream.cs
- RepeatBehaviorConverter.cs
- XmlToDatasetMap.cs
- DataBinding.cs
- HttpCapabilitiesSectionHandler.cs
- EncryptedPackage.cs
- WebPartUserCapability.cs
- ServiceInfo.cs
- ConnectionOrientedTransportBindingElement.cs
- AutoResetEvent.cs
- ByteAnimationUsingKeyFrames.cs
- DocumentGridPage.cs
- ArgumentNullException.cs
- TargetException.cs
- ImageCodecInfo.cs
- RSAPKCS1KeyExchangeFormatter.cs
- Run.cs
- FullTrustAssembly.cs
- DefinitionUpdate.cs
- InstancePersistence.cs
- cookie.cs
- NullRuntimeConfig.cs
- EntityConnection.cs
- StreamHelper.cs
- EncryptedKeyHashIdentifierClause.cs
- ProcessThread.cs
- DbConnectionPool.cs
- GifBitmapEncoder.cs
- TypeGenericEnumerableViewSchema.cs
- TypeConvertions.cs
- XmlTypeAttribute.cs
- XmlSchemaAttributeGroup.cs
- OleDbWrapper.cs
- GridViewUpdatedEventArgs.cs
- ContentFilePart.cs
- UserControlCodeDomTreeGenerator.cs
- precedingquery.cs
- WebConfigurationHostFileChange.cs
- CustomAttributeSerializer.cs
- BindableAttribute.cs
- XmlTextReaderImplHelpers.cs
- MimeTypeMapper.cs
- Composition.cs
- UTF8Encoding.cs
- hwndwrapper.cs
- securitycriticaldataformultiplegetandset.cs