Code:
/ DotNET / DotNET / 8.0 / untmp / WIN_WINDOWS / lh_tools_devdiv_wpf / Windows / wcp / Base / System / Windows / Markup / XmlnsDefinitionAttribute.cs / 1 / XmlnsDefinitionAttribute.cs
//------------------------------------------------------------------------ // // Microsoft Windows Client Platform // Copyright (C) Microsoft Corporation, 2005 // // File: XmlnsDefinitionAttribute.cs // // Contents: Attribute that keep mapping between Xml namespace and // the known types in assembly. // // Created: 01/19/2005 [....] // //----------------------------------------------------------------------- using System; using System.ComponentModel; namespace System.Windows.Markup { ////// /// XmlnsDefinitionAttribute keeps a mapping between Xml namespace and CLR namespace in an Assembly. /// The Xml namespace can be used in a Xaml Markup file. /// /// /// To find the appropriate types for element and attribute in xaml file, xaml processors MUST /// search each referenced assembly for XmlnsDefinitionAttribute. If the xmlns for element tag /// or attribute matches with the XmlNamespace in this XmlnsDefinitionAttibute, the Xaml processor /// then takes use of the ClrNamespace and AssemblyName stored in this Attibute instance to check /// if the element or attribute matches any type inside this namespace in the Assembly. /// /// For a WinFX assembly, it can set this attibute like below: /// /// [assembly:XmlnsDefinition("http://schemas.fabrikam.com/mynamespace", "fabrikam.myproduct.mycategory1")] /// [assembly:XmlnsDefinition("http://schemas.fabrikam.com/mynamespace", "fabrikam.myproduct.mycategory2")] /// /// [assembly:XmlnsDefinition("xmlnamsspace", "clrnamespace", AssemblyName="myassembly or full assemblyname")] /// /// If fabrikam.myproduct.mycategory namespace in this assembly contains a UIElement such as "MyButton", the /// xaml file could use it like below: /// /// Page xmlns:myns="http://schemas.fabrikam.com/mynamespace" .... /// myns:MyButton ...../myns:MyButton /// /Page /// /// [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] public sealed class XmlnsDefinitionAttribute: Attribute { ////// Constructor /// /// /// XmlNamespace used by Markup file /// /// /// Clr namespace which contains known types that are used by Markup File. /// public XmlnsDefinitionAttribute(string xmlNamespace, string clrNamespace) { // Validate Input Arguments if (xmlNamespace == null) { throw new ArgumentNullException("xmlNamespace"); } if (clrNamespace == null) { throw new ArgumentNullException("clrNamespace"); } _xmlNamespace = xmlNamespace; _clrNamespace = clrNamespace; } #region public properties ////// XmlNamespace which can be used in Markup file. /// such as XmlNamespace is set to /// "http://schemas.fabrikam.com/mynamespace". /// /// The markup file can have definition like /// xmlns:myns="http://schemas.fabrikam.com/mynamespace" /// /// public string XmlNamespace { get { return _xmlNamespace; } } ////// ClrNamespace which map to XmlNamespace. /// This ClrNamespace should contain some types which are used /// by Xaml markup file. /// public string ClrNamespace { get { return _clrNamespace; } } ////// The name of Assembly that contains some types inside CLRNamespace. /// If the assemblyName is not set, the code should take the assembly /// for which the instance of this attribute is created. /// public string AssemblyName { get { return _assemblyName; } set { _assemblyName = value; } } #endregion public properties #region Private Fields private string _xmlNamespace; private string _clrNamespace; private string _assemblyName; #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
- BrowserDefinition.cs
- ScriptingProfileServiceSection.cs
- FieldToken.cs
- FixedHighlight.cs
- SelectedPathEditor.cs
- PriorityRange.cs
- HotSpot.cs
- LineServices.cs
- DrawingBrush.cs
- linebase.cs
- IEnumerable.cs
- TextTreeNode.cs
- TreeNodeBindingDepthConverter.cs
- XamlToRtfWriter.cs
- NetMsmqBinding.cs
- HostingEnvironmentWrapper.cs
- EffectiveValueEntry.cs
- TextServicesCompartment.cs
- CharUnicodeInfo.cs
- Multiply.cs
- ToolBarTray.cs
- ClientTargetCollection.cs
- ClientOptions.cs
- SqlInternalConnectionTds.cs
- StylusButton.cs
- MemberProjectedSlot.cs
- ProtectedConfigurationProviderCollection.cs
- HttpProfileBase.cs
- HttpListenerRequest.cs
- RuleRefElement.cs
- COM2Properties.cs
- FullTrustAssembly.cs
- FaultCode.cs
- SpecularMaterial.cs
- EventBuilder.cs
- EntityContainer.cs
- ColumnHeaderConverter.cs
- FillErrorEventArgs.cs
- _NestedSingleAsyncResult.cs
- AnimationClock.cs
- ExplicitDiscriminatorMap.cs
- DataGridItemEventArgs.cs
- CapabilitiesAssignment.cs
- SystemIPv6InterfaceProperties.cs
- ActivationServices.cs
- CompensationDesigner.cs
- HtmlTextArea.cs
- DesignerSelectionListAdapter.cs
- DiscoveryCallbackBehavior.cs
- EtwTrace.cs
- RuntimeEnvironment.cs
- RegistrationServices.cs
- DataGridViewLinkCell.cs
- MenuStrip.cs
- RemoteHelper.cs
- Transactions.cs
- XmlObjectSerializerReadContextComplexJson.cs
- RemoteWebConfigurationHostServer.cs
- OdbcParameterCollection.cs
- FormsAuthenticationUser.cs
- StringBuilder.cs
- ColorTransformHelper.cs
- BufferModeSettings.cs
- Faults.cs
- ListDictionary.cs
- BitmapPalettes.cs
- TextShapeableCharacters.cs
- ChineseLunisolarCalendar.cs
- ProtectedConfigurationProviderCollection.cs
- AppearanceEditorPart.cs
- DBCommandBuilder.cs
- ButtonBaseAutomationPeer.cs
- MbpInfo.cs
- UInt32.cs
- PersistNameAttribute.cs
- FileSecurity.cs
- FontFamilyConverter.cs
- NeutralResourcesLanguageAttribute.cs
- Cursor.cs
- _emptywebproxy.cs
- BooleanAnimationUsingKeyFrames.cs
- Transform3DGroup.cs
- SafeWaitHandle.cs
- CodeAccessPermission.cs
- XmlAttributeAttribute.cs
- Listbox.cs
- MessageDroppedTraceRecord.cs
- GeneralTransform3DTo2DTo3D.cs
- HttpException.cs
- ParameterToken.cs
- storagemappingitemcollection.viewdictionary.cs
- BitmapEffectGeneralTransform.cs
- XPathDescendantIterator.cs
- SoapConverter.cs
- WebServiceResponseDesigner.cs
- TextPointer.cs
- CompressEmulationStream.cs
- SystemIPInterfaceProperties.cs
- Rect.cs
- HtmlAnchor.cs