Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / TrustUi / MS / Internal / documents / Application / AddressUtility.cs / 1 / AddressUtility.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // // Description: // A collection of utility functions for dealing with e-mail address // strings and Uri objects. // // History: // 10/26/05 - [....] created // //--------------------------------------------------------------------------- using System; using System.Globalization; using System.Text.RegularExpressions; using MS.Internal.WindowsBase; namespace MS.Internal.Documents { ////// A collection of utility functions for dealing with e-mail address /// strings and Uri objects. /// internal static class AddressUtility { #region Internal Methods //----------------------------------------------------- // Internal Methods //----------------------------------------------------- ////// Checks if the scheme of the URI given is of the mailto scheme. /// /// The URI to check ///Whether or not it is a mailto URI internal static bool IsMailtoUri(Uri mailtoUri) { if (mailtoUri != null) { return SecurityHelper.AreStringTypesEqual( mailtoUri.Scheme, Uri.UriSchemeMailto); } return false; } ////// Gets the e-mail address from the URI given. /// /// The URI ///The e-mail address internal static string GetEmailAddressFromMailtoUri(Uri mailtoUri) { string address = string.Empty; // Ensure it is a mailto: scheme URI if (IsMailtoUri(mailtoUri)) { // Create the address from the URI address = string.Format( CultureInfo.CurrentCulture, _addressTemplate, mailtoUri.GetComponents(UriComponents.UserInfo, UriFormat.Unescaped), mailtoUri.GetComponents(UriComponents.Host, UriFormat.Unescaped)); } return address; } ////// Generate a mailto: URI from the e-mail address given as an /// argument. /// /// The address to generate a URI from ///The generated URI internal static Uri GenerateMailtoUri(string address) { // Add the scheme to the e-mail address to form a URI object if (!string.IsNullOrEmpty(address)) { return new Uri(string.Format( CultureInfo.CurrentCulture, _mailtoUriTemplate, Uri.UriSchemeMailto, _mailtoSchemeDelimiter, address)); } return null; } #endregion Internal Methods #region Private Fields //-------------------------------------------------------------------------- // Private Fields //------------------------------------------------------------------------- ////// The template for an e-mail address with a user name and a host. /// private const string _addressTemplate = "{0}@{1}"; ////// The template for a mailto scheme URI with the mailto scheme and an /// address. /// private const string _mailtoUriTemplate = "{0}{1}{2}"; ////// The delimiter between the scheme and the address in a mailto URI. /// We unfortunately cannot use the Uri class SchemeDelimiter because /// it is by default set to "://", which makes mailto: URIs generated /// look like "mailto://user@host", whicn in turn cannot be parsed /// properly by this class. /// private const string _mailtoSchemeDelimiter = ":"; #endregion Private Fields } } // 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
- SqlCacheDependencyDatabaseCollection.cs
- TypeSystem.cs
- PageWrapper.cs
- ColorAnimationUsingKeyFrames.cs
- BinaryWriter.cs
- FieldNameLookup.cs
- QueryCursorEventArgs.cs
- Condition.cs
- DataViewSettingCollection.cs
- PropertySegmentSerializationProvider.cs
- SchemaInfo.cs
- GrammarBuilder.cs
- HexParser.cs
- DocumentPageView.cs
- TabControl.cs
- SqlNamer.cs
- WindowsScrollBarBits.cs
- MostlySingletonList.cs
- TreeViewHitTestInfo.cs
- DependencyPropertyChangedEventArgs.cs
- InterleavedZipPartStream.cs
- MemberBinding.cs
- XmlQueryOutput.cs
- TemplateComponentConnector.cs
- WindowsToolbarAsMenu.cs
- Compilation.cs
- Profiler.cs
- Pair.cs
- TableHeaderCell.cs
- TextBoxLine.cs
- Interop.cs
- HelpHtmlBuilder.cs
- ManagedWndProcTracker.cs
- ReadOnlyAttribute.cs
- XmlMemberMapping.cs
- BooleanKeyFrameCollection.cs
- DefaultAuthorizationContext.cs
- FilterableData.cs
- TagPrefixCollection.cs
- BigInt.cs
- DataTablePropertyDescriptor.cs
- ZipIOLocalFileBlock.cs
- Border.cs
- FormViewDeleteEventArgs.cs
- DataTrigger.cs
- StaticSiteMapProvider.cs
- DesignerObjectListAdapter.cs
- MenuItem.cs
- DrawingAttributeSerializer.cs
- Util.cs
- DocumentViewer.cs
- ImplicitInputBrush.cs
- PointCollection.cs
- Misc.cs
- WorkflowServiceInstance.cs
- ImageInfo.cs
- Stroke2.cs
- PageClientProxyGenerator.cs
- DataGridViewCellConverter.cs
- PropertyStore.cs
- XsdDateTime.cs
- EventsTab.cs
- SortKey.cs
- URI.cs
- WebPartPersonalization.cs
- XmlSchemaAttributeGroup.cs
- CategoryNameCollection.cs
- Nullable.cs
- XmlSchemaSet.cs
- Rectangle.cs
- DataServiceProviderWrapper.cs
- CodePageUtils.cs
- UriParserTemplates.cs
- PropertyBuilder.cs
- SwitchCase.cs
- TTSEngineProxy.cs
- SQLInt16Storage.cs
- PositiveTimeSpanValidatorAttribute.cs
- StoreContentChangedEventArgs.cs
- MenuItemStyleCollection.cs
- ListViewDataItem.cs
- ContextBase.cs
- DocumentApplication.cs
- EntityAdapter.cs
- ScrollProperties.cs
- CaseCqlBlock.cs
- TrackBar.cs
- InputReportEventArgs.cs
- XmlDictionaryString.cs
- ManualResetEvent.cs
- TrailingSpaceComparer.cs
- ProfileSection.cs
- ActivationWorker.cs
- RangeBaseAutomationPeer.cs
- FixedSOMFixedBlock.cs
- UriParserTemplates.cs
- Vertex.cs
- BasicViewGenerator.cs
- PagedDataSource.cs
- CompModSwitches.cs