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
- DataGridViewSelectedRowCollection.cs
- PlanCompiler.cs
- InstanceContext.cs
- Parallel.cs
- ToolBarButtonClickEvent.cs
- DataIdProcessor.cs
- GroupItem.cs
- PolyLineSegment.cs
- StorageTypeMapping.cs
- XmlQueryRuntime.cs
- HttpFileCollectionWrapper.cs
- CalendarItem.cs
- GeometryDrawing.cs
- BuildProvidersCompiler.cs
- RegexWorker.cs
- ProcessModuleDesigner.cs
- SqlStream.cs
- Condition.cs
- PtsHelper.cs
- XsdValidatingReader.cs
- Logging.cs
- VirtualStackFrame.cs
- ApplicationManager.cs
- UserControlAutomationPeer.cs
- KnownTypeHelper.cs
- CodeGenerator.cs
- DiagnosticsConfigurationHandler.cs
- TailPinnedEventArgs.cs
- WindowsClaimSet.cs
- TransactionInterop.cs
- XmlArrayAttribute.cs
- TextFormatter.cs
- ManagedIStream.cs
- CommonXSendMessage.cs
- DocumentPageViewAutomationPeer.cs
- X509WindowsSecurityToken.cs
- TextEditorSelection.cs
- BindingContext.cs
- SafeRegistryHandle.cs
- FilterableAttribute.cs
- wpf-etw.cs
- HttpWebResponse.cs
- XmlObjectSerializerWriteContext.cs
- SamlAuthenticationClaimResource.cs
- Schema.cs
- XmlElementAttribute.cs
- StackOverflowException.cs
- ProjectedSlot.cs
- MessageTraceRecord.cs
- WebReferenceOptions.cs
- DefaultTraceListener.cs
- TextEditor.cs
- AsyncPostBackErrorEventArgs.cs
- AccessDataSource.cs
- NativeStructs.cs
- ClientSettingsSection.cs
- VScrollProperties.cs
- HtmlTextViewAdapter.cs
- NonValidatingSecurityTokenAuthenticator.cs
- RegexMatch.cs
- InvokeMethodDesigner.xaml.cs
- GeneralTransform3DGroup.cs
- TimeManager.cs
- SqlProfileProvider.cs
- StrokeCollectionConverter.cs
- QueryContinueDragEventArgs.cs
- BehaviorEditorPart.cs
- UnsafeNativeMethodsPenimc.cs
- XmlSchemaGroupRef.cs
- _NativeSSPI.cs
- OracleDateTime.cs
- DataSourceHelper.cs
- DataAdapter.cs
- Encoding.cs
- DesignerAttribute.cs
- JsonClassDataContract.cs
- XamlTypeMapper.cs
- DbProviderFactories.cs
- BaseHashHelper.cs
- AssemblyAttributesGoHere.cs
- HandlerFactoryWrapper.cs
- IndexedString.cs
- HttpCapabilitiesBase.cs
- SingleConverter.cs
- LayoutUtils.cs
- AttributeProviderAttribute.cs
- HotSpotCollection.cs
- CompilerState.cs
- ThreadStartException.cs
- StringValidator.cs
- WebControlToolBoxItem.cs
- SqlCommandBuilder.cs
- CaseStatementProjectedSlot.cs
- CheckBoxList.cs
- XPathDocumentBuilder.cs
- DesignerForm.cs
- XDeferredAxisSource.cs
- StaticExtensionConverter.cs
- LayoutEditorPart.cs
- QilExpression.cs