Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Framework / System / Windows / Data / XmlNamespaceMapping.cs / 1 / XmlNamespaceMapping.cs
//---------------------------------------------------------------------------- // //// Copyright (C) Microsoft Corporation. All rights reserved. // // // Description: Implementation of XmlNamespaceMapping object. // // Specs: [....]/connecteddata/M5%20Specs/XmlDataSource.mht // [....]/connecteddata/M5%20Specs/WCP%20DataSources.mht // //--------------------------------------------------------------------------- using System; using System.ComponentModel; // ISupportInitialize namespace System.Windows.Data { ////// XmlNamespaceMapping Class /// used for declaring Xml Namespace Mappings /// public class XmlNamespaceMapping : ISupportInitialize { ////// Constructor for XmlNamespaceMapping /// public XmlNamespaceMapping() { } ////// Constructor for XmlNamespaceMapping /// public XmlNamespaceMapping(string prefix, Uri uri) { _prefix = prefix; _uri = uri; } ////// The prefix to be used for this Namespace /// public string Prefix { get { return _prefix; } set { if (!_initializing) throw new InvalidOperationException(SR.Get(SRID.PropertyIsInitializeOnly, "Prefix", this.GetType().Name)); if (_prefix != null && _prefix != value) throw new InvalidOperationException(SR.Get(SRID.PropertyIsImmutable, "Prefix", this.GetType().Name)); _prefix = value; } } ////// The Uri to be used for this Namespace, /// can be declared as an attribute or as the /// TextContent of the XmlNamespaceMapping markup tag /// public Uri Uri { get { return _uri; } set { if (!_initializing) throw new InvalidOperationException(SR.Get(SRID.PropertyIsInitializeOnly, "Uri", this.GetType().Name)); if (_uri != null && _uri != value) throw new InvalidOperationException(SR.Get(SRID.PropertyIsImmutable, "Uri", this.GetType().Name)); _uri = value; } } ////// Equality comparison by value /// public override bool Equals(object obj) { return (this == (obj as XmlNamespaceMapping)); // call the == operator override } ////// Equality comparison by value /// public static bool operator == (XmlNamespaceMapping mappingA, XmlNamespaceMapping mappingB) { // cannot just compare with (mappingX == null), it'll cause recursion and stack overflow! if (object.ReferenceEquals(mappingA, null)) return object.ReferenceEquals(mappingB, null); if (object.ReferenceEquals(mappingB, null)) return false; #pragma warning disable 1634, 1691 // presharp false positive for null-checking on mappings #pragma warning suppress 56506 return ((mappingA.Prefix == mappingB.Prefix) && (mappingA.Uri == mappingB.Uri)) ; #pragma warning restore 1634, 1691 } ////// Inequality comparison by value /// public static bool operator != (XmlNamespaceMapping mappingA, XmlNamespaceMapping mappingB) { return !(mappingA == mappingB); } ////// Hash function for this type /// public override int GetHashCode() { // note that the hash code can change, but only during intialization // (_prefix and _uri can only be changed once, from null to // non-null, and only during [Begin/End]Init). Technically this is // still a violation of the "constant during lifetime" rule, however // in practice this is acceptable. It is very unlikely that someone // will put an XmlNamespaceMapping into a hashtable before it is initialized. int hash = 0; if (_prefix != null) hash = _prefix.GetHashCode(); if (_uri != null) return unchecked(hash + _uri.GetHashCode()); else return hash; } #region ISupportInitialize ///Begin Initialization void ISupportInitialize.BeginInit() { _initializing = true; } ///End Initialization, verify that internal state is consistent void ISupportInitialize.EndInit() { if (_prefix == null) { throw new InvalidOperationException(SR.Get(SRID.PropertyMustHaveValue, "Prefix", this.GetType().Name)); } if (_uri == null) { throw new InvalidOperationException(SR.Get(SRID.PropertyMustHaveValue, "Uri", this.GetType().Name)); } _initializing = false; } #endregion ISupportInitialize private string _prefix; private Uri _uri; private bool _initializing; } } // 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
- XPathMultyIterator.cs
- UnsafeNativeMethodsPenimc.cs
- FixedDocument.cs
- VisualTarget.cs
- RouteItem.cs
- WebBrowserBase.cs
- FontSource.cs
- ContentPresenter.cs
- TabletCollection.cs
- InheritanceService.cs
- TransactionOptions.cs
- PerformanceCounter.cs
- CompressEmulationStream.cs
- PackageDigitalSignature.cs
- InstancePersistenceCommandException.cs
- MsdtcWrapper.cs
- Attribute.cs
- Ref.cs
- DescendentsWalkerBase.cs
- WebResourceAttribute.cs
- SetterTriggerConditionValueConverter.cs
- MdiWindowListItemConverter.cs
- MemoryPressure.cs
- ObjectStateFormatter.cs
- SafeNativeMemoryHandle.cs
- DeclarativeCatalogPart.cs
- DataGridViewButtonColumn.cs
- ProtocolsConfigurationEntry.cs
- MenuItemStyle.cs
- SecurityUniqueId.cs
- Typeface.cs
- IDQuery.cs
- DictationGrammar.cs
- PerCallInstanceContextProvider.cs
- BinaryWriter.cs
- TextContainerChangeEventArgs.cs
- SerializationSectionGroup.cs
- ContextDataSourceContextData.cs
- VersionedStream.cs
- DateTimeOffsetStorage.cs
- BulletChrome.cs
- CanonicalizationDriver.cs
- IOThreadTimer.cs
- OdbcHandle.cs
- TemplateControl.cs
- ActiveDocumentEvent.cs
- ECDiffieHellmanCng.cs
- BackStopAuthenticationModule.cs
- AdvancedBindingEditor.cs
- EdmSchemaError.cs
- ButtonRenderer.cs
- NullableIntMinMaxAggregationOperator.cs
- Configuration.cs
- CompilationUtil.cs
- HttpHostedTransportConfiguration.cs
- UnaryNode.cs
- ObjectStateManager.cs
- BulletChrome.cs
- TdsParserStateObject.cs
- BamlTreeNode.cs
- XmlSerializerSection.cs
- TextBreakpoint.cs
- ForAllOperator.cs
- FixedElement.cs
- SoapMessage.cs
- FragmentNavigationEventArgs.cs
- GiveFeedbackEventArgs.cs
- XmlDocumentFragment.cs
- XmlDataImplementation.cs
- ContainerParagraph.cs
- Compilation.cs
- CodeExpressionCollection.cs
- HttpVersion.cs
- BindingMAnagerBase.cs
- CollectionContainer.cs
- TextElementEnumerator.cs
- SQLByte.cs
- SuppressMergeCheckAttribute.cs
- FixedSOMElement.cs
- ToolStripContainer.cs
- XsltContext.cs
- ListControlConvertEventArgs.cs
- SelectionItemPattern.cs
- AssertFilter.cs
- GridViewColumnHeaderAutomationPeer.cs
- ObjectComplexPropertyMapping.cs
- CachedPathData.cs
- DllHostedComPlusServiceHost.cs
- InputQueueChannel.cs
- WriteableBitmap.cs
- PrePostDescendentsWalker.cs
- RequestChannelBinder.cs
- MultiPageTextView.cs
- SqlConnectionFactory.cs
- Stroke2.cs
- HtmlFormWrapper.cs
- TreeViewItem.cs
- ModifierKeysValueSerializer.cs
- GeometryConverter.cs
- RemotingConfigParser.cs