Code:
/ Dotnetfx_Win7_3.5.1 / Dotnetfx_Win7_3.5.1 / 3.5.1 / DEVDIV / depot / DevDiv / releases / Orcas / NetFXw7 / 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
- COAUTHINFO.cs
- URLBuilder.cs
- EventProviderClassic.cs
- AllowedAudienceUriElement.cs
- GlyphInfoList.cs
- Viewport3DAutomationPeer.cs
- PropertyConverter.cs
- XmlSerializationGeneratedCode.cs
- securitycriticaldataformultiplegetandset.cs
- CompositeControl.cs
- DataSourceView.cs
- ConcurrentStack.cs
- StoreItemCollection.Loader.cs
- DrawListViewColumnHeaderEventArgs.cs
- BulletDecorator.cs
- StorageConditionPropertyMapping.cs
- EntityDataSourceDesigner.cs
- bindurihelper.cs
- X509Certificate2Collection.cs
- MemberExpressionHelper.cs
- InvalidWMPVersionException.cs
- QuerySafeNavigator.cs
- MultiTouchSystemGestureLogic.cs
- Tokenizer.cs
- ResourceDictionaryCollection.cs
- DiscreteKeyFrames.cs
- EventLogTraceListener.cs
- PreservationFileReader.cs
- IriParsingElement.cs
- cookie.cs
- ComponentEditorPage.cs
- RequestCachingSection.cs
- _ShellExpression.cs
- ListBindableAttribute.cs
- COM2Enum.cs
- SchemaCollectionPreprocessor.cs
- ToolboxItemWrapper.cs
- QueryStringConverter.cs
- HttpModuleActionCollection.cs
- BitmapScalingModeValidation.cs
- Types.cs
- AutomationPeer.cs
- ListViewCommandEventArgs.cs
- Underline.cs
- TextPointer.cs
- WorkflowRuntimeServiceElementCollection.cs
- CodeCompiler.cs
- SqlNodeAnnotation.cs
- AppSecurityManager.cs
- unsafenativemethodsother.cs
- XPathDocumentIterator.cs
- PathStreamGeometryContext.cs
- PropertyChangeTracker.cs
- SocketPermission.cs
- IPHostEntry.cs
- ToolStripPanel.cs
- RuntimeConfigLKG.cs
- DataSourceControl.cs
- FixUp.cs
- DelegateSerializationHolder.cs
- TreePrinter.cs
- StorageEntityTypeMapping.cs
- SqlDataAdapter.cs
- Pts.cs
- SimpleHandlerBuildProvider.cs
- IntegerValidatorAttribute.cs
- Filter.cs
- Message.cs
- GridViewSortEventArgs.cs
- Image.cs
- DeviceOverridableAttribute.cs
- ResourceType.cs
- TableCellCollection.cs
- WorkflowViewService.cs
- XsltLibrary.cs
- ExtensionDataObject.cs
- SchemaAttDef.cs
- ParseChildrenAsPropertiesAttribute.cs
- MultiView.cs
- ClientTargetCollection.cs
- DefaultValueAttribute.cs
- ObjectQuery_EntitySqlExtensions.cs
- ImpersonateTokenRef.cs
- SafeIUnknown.cs
- OleDbPropertySetGuid.cs
- ItemAutomationPeer.cs
- AstNode.cs
- DataGridCheckBoxColumn.cs
- EntityFrameworkVersions.cs
- GrammarBuilderDictation.cs
- StateRuntime.cs
- ComplusEndpointConfigContainer.cs
- TextDecorations.cs
- EmptyEnumerator.cs
- TypeExtensionConverter.cs
- MultilineStringConverter.cs
- MimeTypeMapper.cs
- DataViewManager.cs
- DataException.cs
- ChannelSinkStacks.cs