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
- KeySplineConverter.cs
- HtmlShim.cs
- JsonWriter.cs
- CacheDependency.cs
- PolygonHotSpot.cs
- DbSetClause.cs
- HttpCapabilitiesEvaluator.cs
- TextOutput.cs
- ConnectionConsumerAttribute.cs
- AuthorizationRule.cs
- SingleResultAttribute.cs
- DesignerExtenders.cs
- TextBoxBase.cs
- TimeManager.cs
- FontStyles.cs
- SecurityCookieModeValidator.cs
- HttpConfigurationSystem.cs
- TextModifierScope.cs
- BaseDataListActionList.cs
- DispatchRuntime.cs
- StyleXamlTreeBuilder.cs
- NetworkStream.cs
- RectangleConverter.cs
- TransformerInfo.cs
- TrackingCondition.cs
- PtsCache.cs
- CacheHelper.cs
- AutoGeneratedField.cs
- ColorTransformHelper.cs
- TrustManager.cs
- Char.cs
- SapiGrammar.cs
- EventDescriptorCollection.cs
- ThrowOnMultipleAssignment.cs
- ProtectedConfigurationSection.cs
- Keyboard.cs
- VirtualizingPanel.cs
- AssociatedControlConverter.cs
- FloaterParaClient.cs
- HttpListener.cs
- ExpressionLink.cs
- InfoCardCryptoHelper.cs
- DataTableMapping.cs
- ConfigXmlElement.cs
- XamlFilter.cs
- ColorDialog.cs
- BooleanFunctions.cs
- CommandExpr.cs
- ConnectionOrientedTransportChannelFactory.cs
- XsltArgumentList.cs
- ProfilePropertyMetadata.cs
- TableItemStyle.cs
- ContextMenuService.cs
- TypeConverterHelper.cs
- ErrorHandler.cs
- IChannel.cs
- ListViewAutomationPeer.cs
- XPathSingletonIterator.cs
- MissingMemberException.cs
- Int16AnimationUsingKeyFrames.cs
- FixedFindEngine.cs
- RefreshResponseInfo.cs
- ExtractCollection.cs
- NameScopePropertyAttribute.cs
- Label.cs
- BaseDataListPage.cs
- ScriptMethodAttribute.cs
- WindowsSlider.cs
- ConfigXmlAttribute.cs
- WebPartManagerInternals.cs
- LinqDataSourceDisposeEventArgs.cs
- XamlDesignerSerializationManager.cs
- FormViewDeletedEventArgs.cs
- DataGridViewBand.cs
- AssemblyUtil.cs
- WrapPanel.cs
- WebBrowsableAttribute.cs
- DoubleAnimation.cs
- XmlWrappingReader.cs
- ConnectionProviderAttribute.cs
- BamlRecordHelper.cs
- GeneralTransform3DTo2D.cs
- TableCellCollection.cs
- EntitySet.cs
- SecureEnvironment.cs
- ResizingMessageFilter.cs
- SqlTriggerContext.cs
- StorageMappingItemLoader.cs
- ObjectDataSourceEventArgs.cs
- WebControl.cs
- CacheRequest.cs
- RegionInfo.cs
- CryptoStream.cs
- HttpModulesSection.cs
- BindingUtils.cs
- MediaTimeline.cs
- PropertyTabAttribute.cs
- SuppressIldasmAttribute.cs
- WpfWebRequestHelper.cs
- bidPrivateBase.cs