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
- Rfc2898DeriveBytes.cs
- NameScopePropertyAttribute.cs
- OLEDB_Util.cs
- PropertyFilter.cs
- WindowsTab.cs
- DrawingState.cs
- RadioButtonBaseAdapter.cs
- CodeTypeParameter.cs
- LogicalTreeHelper.cs
- ParseNumbers.cs
- DataControlFieldCell.cs
- SafeRightsManagementHandle.cs
- ISO2022Encoding.cs
- AdornedElementPlaceholder.cs
- StreamGeometry.cs
- BindingMAnagerBase.cs
- _ListenerAsyncResult.cs
- RequestNavigateEventArgs.cs
- Console.cs
- CodeAttributeDeclarationCollection.cs
- PersonalizablePropertyEntry.cs
- Formatter.cs
- TemplateKeyConverter.cs
- Utils.cs
- ChangeConflicts.cs
- ActivationArguments.cs
- OletxVolatileEnlistment.cs
- DesignerProperties.cs
- EmbeddedMailObject.cs
- ConfigurationValues.cs
- NoPersistScope.cs
- GacUtil.cs
- CompiledQuery.cs
- Timer.cs
- CheckBox.cs
- EntityViewGenerator.cs
- DurationConverter.cs
- login.cs
- SQLBinary.cs
- ListViewUpdatedEventArgs.cs
- SimpleFieldTemplateUserControl.cs
- UnaryOperationBinder.cs
- Rectangle.cs
- DbProviderConfigurationHandler.cs
- ParseHttpDate.cs
- NativeMethods.cs
- AttributeUsageAttribute.cs
- BrowserDefinition.cs
- JoinSymbol.cs
- ProxyGenerationError.cs
- PolyQuadraticBezierSegmentFigureLogic.cs
- RegisteredExpandoAttribute.cs
- StreamHelper.cs
- ButtonBase.cs
- XmlUTF8TextWriter.cs
- ReferencedCategoriesDocument.cs
- DesignerMetadata.cs
- BrowserCapabilitiesFactory.cs
- XmlHierarchicalEnumerable.cs
- TdsParserSafeHandles.cs
- JsonEncodingStreamWrapper.cs
- ServiceOperationUIEditor.cs
- Signature.cs
- SettingsAttributeDictionary.cs
- TextCompositionManager.cs
- DecoratedNameAttribute.cs
- CoreSwitches.cs
- EdmToObjectNamespaceMap.cs
- HttpDictionary.cs
- SystemFonts.cs
- SoundPlayer.cs
- HttpListenerContext.cs
- HttpApplication.cs
- TargetControlTypeCache.cs
- DbCommandDefinition.cs
- MergeEnumerator.cs
- RealProxy.cs
- Help.cs
- ApplicationDirectory.cs
- BitConverter.cs
- GraphicsState.cs
- XsltException.cs
- MetabaseSettingsIis7.cs
- MissingMethodException.cs
- FontWeightConverter.cs
- EFAssociationProvider.cs
- SkipStoryboardToFill.cs
- LabelEditEvent.cs
- CollectionChangeEventArgs.cs
- OutputCacheSettings.cs
- IdentityReference.cs
- ColumnResult.cs
- StringDictionaryWithComparer.cs
- ObjectNotFoundException.cs
- _RegBlobWebProxyDataBuilder.cs
- IndexOutOfRangeException.cs
- SqlCacheDependencySection.cs
- LocalizableAttribute.cs
- FamilyMapCollection.cs
- QilValidationVisitor.cs