Code:
/ 4.0 / 4.0 / untmp / DEVDIV_TFS / Dev10 / Releases / RTMRel / wpf / src / Framework / System / Windows / Markup / Baml2006 / WpfSharedXamlSchemaContext.cs / 1305600 / WpfSharedXamlSchemaContext.cs
using System; using System.Collections.Generic; using System.Text; using System.Xaml; namespace System.Windows.Baml2006 { ////// This schema context is shared between all the WPF XAML loads in an AppDomain, including both /// full and partial trust callers. To be safe for sharing, it must be idempotent and order-independent. /// See the SecurityNote on XamlSchemaContext for more details. /// internal class WpfSharedXamlSchemaContext : WpfSharedBamlSchemaContext { // V3 Rules are: // Simple Collection rules: We only lookup IList & IDictionary (no add methods) (The MarkupCompiler doesn't support this) // No Deferring Loader lookup on XamlMember (The MarkupCompiler doesn't support this) public WpfSharedXamlSchemaContext(XamlSchemaContextSettings settings, bool useV3Rules) : base(settings) { _useV3Rules = useV3Rules; } public override XamlType GetXamlType(Type type) { if (type == null) { throw new ArgumentNullException("type"); } XamlType xType; lock (_syncObject) { if (!_masterTypeTable.TryGetValue(type, out xType)) { RequireRuntimeType(type); xType = CreateKnownBamlType(type.Name, false, _useV3Rules); if (xType == null || xType.UnderlyingType != type) { xType = new WpfXamlType(type, this, false /* isBamlType */, _useV3Rules); } _masterTypeTable.Add(type, xType); } } return xType; } internal static void RequireRuntimeType(Type type) { // To avoid injection of derived System.Types that lie about their identity // (and spoof other types), only allow RuntimeTypes. // S.W.M.XamlReader only supports live reflection, anyway. Type runtimeType = typeof(object).GetType(); if (!runtimeType.IsAssignableFrom(type.GetType())) { throw new ArgumentException(SR.Get(SRID.RuntimeTypeRequired, type), "type"); } } // Allow wrapping SchemaContexts a way to call into the protected overload of GetXamlType internal XamlType GetXamlTypeInternal(string xamlNamespace, string name, params XamlType[] typeArguments) { return base.GetXamlType(xamlNamespace, name, typeArguments); } private Dictionary_masterTypeTable = new Dictionary (); private object _syncObject = new Object(); private bool _useV3Rules; } } // 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
- NGCPageContentCollectionSerializerAsync.cs
- FixedSOMImage.cs
- XamlToRtfWriter.cs
- GuidTagList.cs
- ListViewAutomationPeer.cs
- RemotingServices.cs
- ObjectContext.cs
- StringOutput.cs
- TrailingSpaceComparer.cs
- SqlMethodAttribute.cs
- ProfileInfo.cs
- CoTaskMemHandle.cs
- SynchronizationLockException.cs
- VirtualPathUtility.cs
- ExportException.cs
- MetadataItemEmitter.cs
- DataGridViewRowContextMenuStripNeededEventArgs.cs
- Object.cs
- StylusLogic.cs
- EventMappingSettings.cs
- RowCache.cs
- _DomainName.cs
- CompositionAdorner.cs
- LoginUtil.cs
- PackageRelationshipCollection.cs
- WindowsMenu.cs
- InputBindingCollection.cs
- CatalogPartDesigner.cs
- util.cs
- CodeAccessSecurityEngine.cs
- __Error.cs
- ArgumentValidation.cs
- DocumentationServerProtocol.cs
- XmlLoader.cs
- DefaultTypeArgumentAttribute.cs
- SymbolEqualComparer.cs
- DataGridComponentEditor.cs
- XmlSchemaValidator.cs
- SafeEventHandle.cs
- TemplatePartAttribute.cs
- GregorianCalendarHelper.cs
- GlyphElement.cs
- VersionedStreamOwner.cs
- ObjectPersistData.cs
- ImportContext.cs
- BamlLocalizer.cs
- GeometryModel3D.cs
- HtmlShim.cs
- NameSpaceExtractor.cs
- SendingRequestEventArgs.cs
- MetaModel.cs
- ShaderEffect.cs
- SqlProfileProvider.cs
- DataTemplateSelector.cs
- Binding.cs
- BitmapEffectInputConnector.cs
- WebPartChrome.cs
- WebPartConnectionsCancelEventArgs.cs
- WebPartZoneBase.cs
- SystemColors.cs
- XsltOutput.cs
- AdditionalEntityFunctions.cs
- WebBrowserHelper.cs
- IndexedEnumerable.cs
- AnimationLayer.cs
- Formatter.cs
- RijndaelCryptoServiceProvider.cs
- ErrorWrapper.cs
- DateTimeUtil.cs
- ClearTypeHintValidation.cs
- BufferBuilder.cs
- ParameterToken.cs
- Simplifier.cs
- contentDescriptor.cs
- LockCookie.cs
- Nullable.cs
- PropertyItemInternal.cs
- EncodingNLS.cs
- HtmlCommandAdapter.cs
- DataGridViewSelectedCellCollection.cs
- DependencyPropertyChangedEventArgs.cs
- ObjectNotFoundException.cs
- EventItfInfo.cs
- PixelShader.cs
- DesignOnlyAttribute.cs
- Vars.cs
- TypedTableBaseExtensions.cs
- BoundingRectTracker.cs
- VisualTarget.cs
- WindowsFormsSynchronizationContext.cs
- LinkConverter.cs
- Version.cs
- BlurBitmapEffect.cs
- VersionedStreamOwner.cs
- ArithmeticException.cs
- ImageSourceValueSerializer.cs
- DocumentSequenceHighlightLayer.cs
- SQLInt16.cs
- XPathNavigatorKeyComparer.cs
- DataTemplateKey.cs