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
- EventProviderWriter.cs
- ConfigurationCollectionAttribute.cs
- ClosableStream.cs
- _NetRes.cs
- EntityDataSourceSelectingEventArgs.cs
- DesignTimeHTMLTextWriter.cs
- InvalidProgramException.cs
- EventSchemaTraceListener.cs
- SpellerError.cs
- InfocardChannelParameter.cs
- TableLayoutSettingsTypeConverter.cs
- XmlSchemaIdentityConstraint.cs
- SimpleFileLog.cs
- CodePageEncoding.cs
- FrameworkElement.cs
- ThreadNeutralSemaphore.cs
- XmlCustomFormatter.cs
- BuildManager.cs
- CorrelationManager.cs
- SafeCryptHandles.cs
- WindowsEditBoxRange.cs
- StringConverter.cs
- UnmanagedBitmapWrapper.cs
- MatrixCamera.cs
- SimpleWorkerRequest.cs
- SystemThemeKey.cs
- storepermission.cs
- loginstatus.cs
- SqlDataSourceCustomCommandPanel.cs
- DataSet.cs
- RC2.cs
- NoResizeSelectionBorderGlyph.cs
- ViewValidator.cs
- ToolStripContentPanelRenderEventArgs.cs
- SqlConnectionStringBuilder.cs
- PolyLineSegment.cs
- SqlConnectionManager.cs
- UserMapPath.cs
- FormView.cs
- elementinformation.cs
- TextClipboardData.cs
- XmlSchemaGroupRef.cs
- ContentPresenter.cs
- TableCellCollection.cs
- SqlDataSourceConfigureFilterForm.cs
- FunctionQuery.cs
- FeatureManager.cs
- RoleService.cs
- DynamicILGenerator.cs
- TableLayoutStyle.cs
- Debug.cs
- WebBrowserHelper.cs
- RenderingEventArgs.cs
- EventWaitHandleSecurity.cs
- Propagator.JoinPropagator.cs
- ResXBuildProvider.cs
- LinkedList.cs
- hwndwrapper.cs
- EdmTypeAttribute.cs
- DbConnectionPoolOptions.cs
- ObjectDataSourceDisposingEventArgs.cs
- ChannelManager.cs
- HitTestFilterBehavior.cs
- HostingEnvironment.cs
- AuthenticodeSignatureInformation.cs
- Freezable.cs
- RegexStringValidatorAttribute.cs
- SystemFonts.cs
- ErrorWebPart.cs
- CodeCatchClause.cs
- XmlDocumentFragment.cs
- SqlResolver.cs
- KeyInterop.cs
- WebPartDisplayModeEventArgs.cs
- BamlRecordHelper.cs
- LogExtent.cs
- HyperLinkColumn.cs
- WsdlImporterElement.cs
- NavigationService.cs
- SqlMethods.cs
- Variable.cs
- OverloadGroupAttribute.cs
- Sql8ExpressionRewriter.cs
- AssemblySettingAttributes.cs
- ExtensionSimplifierMarkupObject.cs
- RbTree.cs
- DataGridViewRowsRemovedEventArgs.cs
- X509Utils.cs
- ControlType.cs
- OrderingExpression.cs
- CustomAssemblyResolver.cs
- RbTree.cs
- BuildProvidersCompiler.cs
- FontFamily.cs
- DesignerVerb.cs
- ServiceModelActivationSectionGroup.cs
- DocumentApplicationDocumentViewer.cs
- CommandID.cs
- XmlSignatureProperties.cs
- PackagePartCollection.cs