Code:
/ Net / Net / 3.5.50727.3053 / DEVDIV / depot / DevDiv / releases / Orcas / SP / wpf / src / 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 weibz // //----------------------------------------------------------------------- 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. //------------------------------------------------------------------------ // // 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 weibz // //----------------------------------------------------------------------- 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
- SystemUdpStatistics.cs
- MultilineStringEditor.cs
- HttpServerVarsCollection.cs
- XmlAggregates.cs
- UIEndRequest.cs
- XmlUrlResolver.cs
- BitmapDownload.cs
- DataPointer.cs
- DataSourceCache.cs
- XamlToRtfWriter.cs
- CaseInsensitiveHashCodeProvider.cs
- IntAverageAggregationOperator.cs
- ScriptControlDescriptor.cs
- ApplyTemplatesAction.cs
- FlagsAttribute.cs
- OdbcError.cs
- NestedContainer.cs
- DES.cs
- Authorization.cs
- SqlNodeAnnotations.cs
- DBSqlParserTable.cs
- StreamResourceInfo.cs
- ContainerFilterService.cs
- COM2ExtendedUITypeEditor.cs
- ResourcePool.cs
- GB18030Encoding.cs
- CommandBindingCollection.cs
- DataTableMapping.cs
- PassportPrincipal.cs
- StateDesigner.CommentLayoutGlyph.cs
- WebServiceEnumData.cs
- MergePropertyDescriptor.cs
- MarshalByRefObject.cs
- ButtonBaseAdapter.cs
- PkcsMisc.cs
- FormatSelectingMessageInspector.cs
- PolyQuadraticBezierSegment.cs
- Group.cs
- FormViewActionList.cs
- DbConnectionClosed.cs
- LingerOption.cs
- EncoderReplacementFallback.cs
- ProjectionQueryOptionExpression.cs
- MenuTracker.cs
- PaperSource.cs
- TableLayout.cs
- Point3DCollection.cs
- DataList.cs
- xamlnodes.cs
- TransformPattern.cs
- TextBoxAutoCompleteSourceConverter.cs
- WeakRefEnumerator.cs
- ArgumentException.cs
- DmlSqlGenerator.cs
- Msec.cs
- UnsafeNativeMethodsCLR.cs
- PropertyFilterAttribute.cs
- UserPrincipalNameElement.cs
- SerializationEventsCache.cs
- AsymmetricKeyExchangeFormatter.cs
- DataListItemEventArgs.cs
- DataKeyArray.cs
- ConfigurationFileMap.cs
- AxParameterData.cs
- TextMarkerSource.cs
- OracleCommand.cs
- AuthorizationRuleCollection.cs
- WSFederationHttpBindingCollectionElement.cs
- DrawingAttributesDefaultValueFactory.cs
- SoapAttributeAttribute.cs
- Socket.cs
- SqlClientPermission.cs
- NumericUpDown.cs
- SamlAudienceRestrictionCondition.cs
- ValidationHelper.cs
- TransactionProxy.cs
- ProbeMatchesApril2005.cs
- RoleGroupCollection.cs
- MemoryRecordBuffer.cs
- JpegBitmapDecoder.cs
- SqlBinder.cs
- FlowDocument.cs
- PositiveTimeSpanValidator.cs
- VirtualPathProvider.cs
- BaseComponentEditor.cs
- Interlocked.cs
- DragDeltaEventArgs.cs
- InvalidContentTypeException.cs
- ListViewSelectEventArgs.cs
- XPathPatternBuilder.cs
- ADConnectionHelper.cs
- ApplicationServicesHostFactory.cs
- wmiprovider.cs
- SlipBehavior.cs
- SchemaNotation.cs
- BigIntegerStorage.cs
- XmlSchemaCollection.cs
- SetStoryboardSpeedRatio.cs
- Exceptions.cs
- DelegateSerializationHolder.cs