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
- ManagementDateTime.cs
- ScriptResourceHandler.cs
- DependencyPropertyKey.cs
- TiffBitmapEncoder.cs
- ElementHost.cs
- CodePrimitiveExpression.cs
- ChannelDispatcher.cs
- PreviewKeyDownEventArgs.cs
- DataGridViewSelectedRowCollection.cs
- Int32CollectionValueSerializer.cs
- TableAutomationPeer.cs
- QueryOutputWriter.cs
- NonSerializedAttribute.cs
- HasCopySemanticsAttribute.cs
- WmlMobileTextWriter.cs
- GregorianCalendar.cs
- DesignerDataStoredProcedure.cs
- ArithmeticException.cs
- AppearanceEditorPart.cs
- CodeFieldReferenceExpression.cs
- ImageDrawing.cs
- SignedInfo.cs
- DesignTimeParseData.cs
- SimpleMailWebEventProvider.cs
- VoiceObjectToken.cs
- Int64AnimationBase.cs
- ACE.cs
- JsonUriDataContract.cs
- COM2PropertyBuilderUITypeEditor.cs
- XPathParser.cs
- WizardPanelChangingEventArgs.cs
- XmlQueryType.cs
- x509store.cs
- HideDisabledControlAdapter.cs
- ContentValidator.cs
- NameTable.cs
- XmlSerializationWriter.cs
- HttpFileCollectionBase.cs
- LocationUpdates.cs
- PenContext.cs
- CancellationHandlerDesigner.cs
- ValidationRuleCollection.cs
- x509utils.cs
- ControlBuilderAttribute.cs
- HtmlSelect.cs
- ApplicationTrust.cs
- PointCollection.cs
- SynchronizationLockException.cs
- MessageQueueAccessControlEntry.cs
- LineServices.cs
- ObjectReaderCompiler.cs
- ListBox.cs
- XPathSingletonIterator.cs
- ConfigurationPropertyAttribute.cs
- BinaryMessageEncodingElement.cs
- complextypematerializer.cs
- MulticastNotSupportedException.cs
- XmlLinkedNode.cs
- XmlElementList.cs
- HasRunnableWorkflowEvent.cs
- XmlBufferReader.cs
- XmlAnyAttributeAttribute.cs
- EntityContainerAssociationSet.cs
- TrustLevelCollection.cs
- MissingSatelliteAssemblyException.cs
- ConnectorSelectionGlyph.cs
- TableItemProviderWrapper.cs
- PasswordDeriveBytes.cs
- XmlEventCache.cs
- ToolStripDropDownItem.cs
- OleDbCommand.cs
- OleDbInfoMessageEvent.cs
- ToolStripTextBox.cs
- ConvertEvent.cs
- arabicshape.cs
- TouchEventArgs.cs
- HGlobalSafeHandle.cs
- ArgumentNullException.cs
- TextEditorTyping.cs
- InputScope.cs
- SelectedDatesCollection.cs
- URIFormatException.cs
- TemplateNameScope.cs
- Message.cs
- DataSourceCacheDurationConverter.cs
- PageBuildProvider.cs
- LocalizabilityAttribute.cs
- JavaScriptString.cs
- NumericUpDown.cs
- ImageAnimator.cs
- TraceFilter.cs
- PointAnimationUsingKeyFrames.cs
- PartialArray.cs
- ContextActivityUtils.cs
- ListViewContainer.cs
- ImageConverter.cs
- precedingsibling.cs
- FilterElement.cs
- PropertyMappingExceptionEventArgs.cs
- MetaType.cs