Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / ndp / cdf / src / NetFx40 / XamlBuildTask / Microsoft / Build / Tasks / Xaml / WrappingXamlSchemaContext.cs / 1305376 / WrappingXamlSchemaContext.cs
using System; using System.Collections.Generic; using System.Text; using System.Xaml; using System.Reflection; namespace Microsoft.Build.Tasks.Xaml { class XamlNsReplacingContext : XamlSchemaContext { string localAssemblyName; string realAssemblyName; IDictionaryMasterTypeList; public XamlNsReplacingContext(IEnumerable referenceAssemblies, string localAssemblyName, string realAssemblyName) : base(referenceAssemblies) { this.localAssemblyName = localAssemblyName; this.realAssemblyName = realAssemblyName; MasterTypeList = new Dictionary (); } public override XamlType GetXamlType(Type type) { if (type == null) { throw FxTrace.Exception.AsError(new ArgumentNullException("type")); } XamlNsReplacingType xamlType = null; if (!MasterTypeList.TryGetValue(type, out xamlType)) { xamlType = new XamlNsReplacingType(type, this, localAssemblyName, realAssemblyName); MasterTypeList.Add(type, xamlType); } return xamlType; } protected override XamlType GetXamlType(string xamlNamespace, string name, params XamlType[] typeArguments) { XamlType xamlType = base.GetXamlType(xamlNamespace, name, typeArguments); if (xamlType == null || xamlType.IsUnknown) { xamlNamespace = XamlBuildTaskServices.UpdateClrNamespaceUriWithLocalAssembly(xamlNamespace, this.localAssemblyName, this.realAssemblyName); xamlType = base.GetXamlType(xamlNamespace, name, typeArguments); } return xamlType; } } class XamlNsReplacingType : XamlType { string localAssemblyName; string realAssemblyName; List namespaces; public XamlNsReplacingType(Type underlyingType, XamlSchemaContext context, string localAssemblyName, string realAssemblyName) : base(underlyingType, context) { this.localAssemblyName = localAssemblyName; this.realAssemblyName = realAssemblyName; namespaces = null; } public override IList GetXamlNamespaces() { if (namespaces == null) { namespaces = new List (); IList originalNamespaces = base.GetXamlNamespaces(); foreach (var ns in originalNamespaces) { namespaces.Add(XamlBuildTaskServices.UpdateClrNamespaceUriWithLocalAssembly(ns, this.localAssemblyName, this.realAssemblyName)); } } return namespaces; } } } // 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
- WindowPattern.cs
- WindowInteractionStateTracker.cs
- WebControlAdapter.cs
- RtfToken.cs
- COAUTHIDENTITY.cs
- UnsafeMethods.cs
- OleDbError.cs
- EventInfo.cs
- DynamicPropertyHolder.cs
- RbTree.cs
- MonthChangedEventArgs.cs
- RegexCapture.cs
- HuffCodec.cs
- SponsorHelper.cs
- SplitterEvent.cs
- WebPartExportVerb.cs
- ExitEventArgs.cs
- XamlReaderHelper.cs
- ResourceReferenceExpression.cs
- DeclarativeCatalogPartDesigner.cs
- TraceFilter.cs
- Header.cs
- InstanceCreationEditor.cs
- QueryAccessibilityHelpEvent.cs
- XmlMessageFormatter.cs
- WindowShowOrOpenTracker.cs
- CompModHelpers.cs
- NTAccount.cs
- DynamicPropertyReader.cs
- HtmlInputSubmit.cs
- ImageMetadata.cs
- Geometry3D.cs
- PageCodeDomTreeGenerator.cs
- NamedPipeHostedTransportConfiguration.cs
- Coordinator.cs
- TextTreeInsertUndoUnit.cs
- Type.cs
- SpecularMaterial.cs
- BrowserDefinition.cs
- ErrorTolerantObjectWriter.cs
- CfgParser.cs
- RsaEndpointIdentity.cs
- XPathBuilder.cs
- BindToObject.cs
- XmlIlTypeHelper.cs
- CharUnicodeInfo.cs
- MenuTracker.cs
- BaseAddressElementCollection.cs
- DirectoryNotFoundException.cs
- TypeContext.cs
- XamlRtfConverter.cs
- ProtocolsSection.cs
- SoapServerMessage.cs
- EdmType.cs
- TraceLog.cs
- MetafileHeaderWmf.cs
- CultureMapper.cs
- SpecularMaterial.cs
- StringValidator.cs
- CheckableControlBaseAdapter.cs
- ServiceOperationWrapper.cs
- ToolboxItem.cs
- CollectionBase.cs
- ConfigXmlText.cs
- TextEditorSpelling.cs
- VisualBasicValue.cs
- XmlNamedNodeMap.cs
- SinglePhaseEnlistment.cs
- Html32TextWriter.cs
- DependencyObjectValidator.cs
- CLSCompliantAttribute.cs
- XmlLanguage.cs
- Stacktrace.cs
- WebSysDescriptionAttribute.cs
- DifferencingCollection.cs
- DetailsViewPagerRow.cs
- InternalControlCollection.cs
- Descriptor.cs
- ListSourceHelper.cs
- SizeChangedEventArgs.cs
- ListControl.cs
- SwitchDesigner.xaml.cs
- FormsAuthenticationTicket.cs
- Span.cs
- D3DImage.cs
- ErrorFormatterPage.cs
- BamlResourceContent.cs
- CacheAxisQuery.cs
- AudioException.cs
- FilteredDataSetHelper.cs
- StaticSiteMapProvider.cs
- ResourcePermissionBase.cs
- Emitter.cs
- TableLayoutPanel.cs
- AudioFileOut.cs
- PixelFormats.cs
- WebPartDescription.cs
- TextDecorationCollection.cs
- TemplatePartAttribute.cs
- DBBindings.cs