Code:
/ Dotnetfx_Vista_SP2 / Dotnetfx_Vista_SP2 / 8.0.50727.4016 / DEVDIV / depot / DevDiv / releases / Orcas / QFE / 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
- InvalidComObjectException.cs
- QueryOptionExpression.cs
- WebBrowser.cs
- XmlQueryCardinality.cs
- DateTimeSerializationSection.cs
- AssemblyHelper.cs
- HtmlForm.cs
- BaseValidator.cs
- ApplicationDirectoryMembershipCondition.cs
- ToolStripCollectionEditor.cs
- GPRECTF.cs
- Line.cs
- ActivityBuilderXamlWriter.cs
- StateWorkerRequest.cs
- AssemblyContextControlItem.cs
- DataGridViewTextBoxColumn.cs
- UserControlBuildProvider.cs
- DefaultHttpHandler.cs
- COAUTHINFO.cs
- SmtpNegotiateAuthenticationModule.cs
- DependencyPropertyAttribute.cs
- smtppermission.cs
- WebPartUserCapability.cs
- Int32RectValueSerializer.cs
- FileCodeGroup.cs
- HttpApplication.cs
- MimeXmlImporter.cs
- PhotoPrintingIntent.cs
- TraceSection.cs
- AdPostCacheSubstitution.cs
- ChildChangedEventArgs.cs
- ConfigsHelper.cs
- OneOfTypeConst.cs
- PropertyChangeTracker.cs
- HandlerFactoryCache.cs
- ValidationErrorEventArgs.cs
- MenuItemBinding.cs
- PartitionResolver.cs
- ProtocolsSection.cs
- ColorAnimation.cs
- XhtmlConformanceSection.cs
- CombinedGeometry.cs
- SecurityDescriptor.cs
- peersecuritysettings.cs
- GlobalizationAssembly.cs
- DataGridViewAddColumnDialog.cs
- SelectionGlyph.cs
- PackWebRequestFactory.cs
- EmptyReadOnlyDictionaryInternal.cs
- Point4D.cs
- ResXResourceSet.cs
- Control.cs
- PackageDigitalSignature.cs
- SecurityHeaderTokenResolver.cs
- RemotingAttributes.cs
- SmtpDigestAuthenticationModule.cs
- HttpHandlersSection.cs
- BasicSecurityProfileVersion.cs
- SparseMemoryStream.cs
- WebPartDescription.cs
- NetDataContractSerializer.cs
- DataGridAutoGeneratingColumnEventArgs.cs
- PackWebRequestFactory.cs
- DescendantOverDescendantQuery.cs
- RootProfilePropertySettingsCollection.cs
- DataServices.cs
- EntityDataSourceContextDisposingEventArgs.cs
- XomlCompilerParameters.cs
- ConfigXmlAttribute.cs
- ScrollContentPresenter.cs
- ToolStripSplitButton.cs
- HorizontalAlignConverter.cs
- KnownBoxes.cs
- SmiMetaData.cs
- ProvideValueServiceProvider.cs
- CaseInsensitiveHashCodeProvider.cs
- TransactionFlowAttribute.cs
- DatagridviewDisplayedBandsData.cs
- AliasedSlot.cs
- altserialization.cs
- StorageModelBuildProvider.cs
- EnumConverter.cs
- ParameterBuilder.cs
- AssociationTypeEmitter.cs
- GraphicsContext.cs
- OleDbReferenceCollection.cs
- MessageDecoder.cs
- IndentedWriter.cs
- ColumnReorderedEventArgs.cs
- XmlAnyAttributeAttribute.cs
- Section.cs
- COM2PictureConverter.cs
- FileDialogCustomPlace.cs
- HttpCookieCollection.cs
- ResourceProviderFactory.cs
- ScrollContentPresenter.cs
- ListControlConvertEventArgs.cs
- InvalidWMPVersionException.cs
- DispatcherTimer.cs
- EntityDataSourceConfigureObjectContext.cs